我在向扩展程序添加新协议一致性时遇到编译器错误。
struct EquatableStruct {...}
extension EquatableStruct: Equatable {
static func == (lhs: EquatableStruct, rhs: EquatableStruct) -> Bool {
return true
}
}
这里我得到了这个编译器错误。
Implementation of 'Equatable' cannot be automatically synthesized in an extension
答案 0 :(得分:1)
您错误地引用了错误。它应该是:
'Equatable'的实现无法在扩展名
中自动合成
Comparable
延伸Equatable
。如果您希望您的扩展程序符合Comparable
,则还必须实施Equatable
协议。
extension ComparableStruct: Comparable {
static func < (lhs: ComparableStruct, rhs: ComparableStruct) -> Bool {
return true // FIX
}
static func == (lhs: ComparableStruct, rhs: ComparableStruct) -> Bool {
return true // FIX
}
}