美文网首页
Swift 对象相等(EqualTo)判断

Swift 对象相等(EqualTo)判断

作者: tsiic | 来源:发表于2019-02-13 13:52 被阅读0次

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?),而这个方法的默认实现是比较实例的地址。字符串等基本类型是已经替换了默认实现,所以平常用的时候感觉不到有什么异常。

参考资料

  1. https://stackoverflow.com/questions/34835359/compare-two-nsobject-in-swift
  2. https://stackoverflow.com/questions/24002819/difference-between-and

相关文章

  • Swift 对象相等(EqualTo)判断

    Swift 对象相等(EqualTo)判断 @(编程笔记)[iOS开发,Swift] 之前一直知道Swift用的是...

  • js 判断两个对象是否相等

    判断对象相等的步骤:

  • swift enum 关联值

    如果在swift中为枚举设置了关联值. 那么直接判断相等是错误的 要这样判断相等

  • C# 相等比较

    引用相等性 判断两个对象是否引用同一基础对象。使用 ReferenceEquals 方法判断: 值相等性 使用 =...

  • python 高级编程①

    1 ‘==’ 与‘is ’的使用 ① ‘==’判断两个对象内容是否相等 ‘is’判断两个对象的地址是否相等 ②在p...

  • 2019-01-21深入理解js中空对象与空对象不相等的问题

    参考文章 这与之前判断对象是相等一样,因为js相等表示地址相等,不是对象内容相同。 所以我们需要将使用循环判断:判...

  • 关于isEqual

    isEqual,用来判断两个对象是否相等。但是,与“==”判断指针地址是否相等,不同的是,它判断的是对象的内容方...

  • kotlin学习笔记

    $ ?表示对象可能为空 ?: !! ==,=== ==判断值是否相等,===判断值及引用是否完全相等。 ..Kot...

  • JS如何判断俩个对象是否相等

    判断对象相等的步骤:1.先判断俩者是不是对象2.是对象后俩者长度是否一致3.判断俩个对象的所有key值是否相等相同...

  • iOS 对象判断相等

    == isEqual 重写isEqual 为什么需要重写对象的hash值 参考

网友评论

      本文标题:Swift 对象相等(EqualTo)判断

      本文链接:https://www.haomeiwen.com/subject/hcmwgftx.html