Swift 对象相等(EqualTo)判断
@(编程笔记)[iOS开发,Swift]
之前一直知道Swift用的是类JS的语法进行相等判断,也就是
==
operator checks if their instance values are equal, "equal to"
===
operator checks if the references point the same instance, "identical to"
但是事实上,如果是不继承自NSObject的纯 Swift 类,默认是不遵循Equatable协议的,也就是根本不能用==
进行判断。
而如果是继承自NSObject,那么==
的默认实现是调用isEqual(_ object: Any?)
,而这个方法的默认实现是比较实例的地址。字符串等基本类型是已经替换了默认实现,所以平常用的时候感觉不到有什么异常。
网友评论