实施' Equatable'无法在扩展程序中自动合成

时间:2018-06-08 06:16:11

标签: swift swift4

我在向扩展程序添加新协议一致性时遇到编译器错误。

struct EquatableStruct {...}

extension EquatableStruct: Equatable {
  static func == (lhs: EquatableStruct, rhs: EquatableStruct) -> Bool {
    return true
  }
}

这里我得到了这个编译器错误。 Implementation of 'Equatable' cannot be automatically synthesized in an extension

1 个答案:

答案 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
    }
}