[swift-users] can we express "does not conform to a particular protocol"?

David Baraff davidbaraff at gmail.com
Mon Jul 3 20:27:43 CDT 2017


No, i want the equality function run if the two types are equatable, and false otherwise (even if you might deem them to be the same, e.g. two identical sets, because sets do not conform to equatable, or two identical classes, becauses classes are not (in general) equatable).

So
  maybeEqual(3, 3)	// true
  maybeEqual(3, 4)	// false
  maybeEqual([1,2,3], [1,2,3])	// false (because arrays are not actual equatable)

  let d = [String:Any]()
  maybeEqual(d, d)	// false because type(d) is not equatable even though obviously d is equal to itself






More information about the swift-users mailing list