Equatabel 协议学习日记

public protocol Equatable { 

 static func == (lhs: Self, rhs: Self) -> Bool

}

/// - `a == a` is always `true` (Reflexivity)自反性

/// - `a == b` implies `b == a` (Symmetry)对称性

/// - `a == b` and `b == c` implies `a == c` (Transitivity) 传递性

public func !=(lhs: T, rhs: T) -> Bool {

return !(lhs == rhs)

}

简单的== 方法取反

以上== 和 !=  不一定是比较指针  当然可以自己实现成为比较指针,(oc == 是比较指针)

针对指针的比较Equatabel实现了另外两个类方法

public func === (lhs: AnyObject?, rhs: AnyObject?) -> Bool

public func !== (lhs: AnyObject?, rhs: AnyObject?) -> Bool

Swift中 === 是进行指针的比较 可以被重写  并没有final

!== 是对===的取反

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容