【发布时间】:2017-12-15 02:19:28
【问题描述】:
我正在学习 swift 并阅读了一个关于扩展中的运算符重载的主题,其中喜欢:
extension StreetAddress: Equatable {
static func == (lhs: StreetAddress, rhs: StreetAddress) -> Bool {
return
lhs.number == rhs.number &&
lhs.street == rhs.street &&
lhs.unit == rhs.unit
}
}
但我怎么知道我需要采用 Equatable?
我尝试删除该协议并且该功能的工作方式相同。 不会报告任何警告或错误。 为什么?
【问题讨论】:
-
符合
Equatable需要你实现==,但实现==不需要你符合Equatable。
标签: swift operators overloading equatable