协议报告具有“自我或相关类型要求”,当它没有任何时候

时间:2016-01-09 12:59:06

标签: swift protocols

我有以下代码:

protocol LanguageType: Hashable {
    var description: String { get }
}

extension LanguageType {
    var description: String { return "(Self.self)" }
    var hashValue: Int { return "(Self.self)".hashValue }
}

func ==<T: LanguageType, U: LanguageType>(left: T, right: U) -> Bool {
    return left.hashValue == right.hashValue
}

struct English: LanguageType { }

当我执行以下操作时:

let english: LanguageType = English()

我收到以下错误:

Error

应该来自哪个相关类型?
(即使我删除了"\(Self.self)",它仍会抱怨。)

1 个答案:

答案 0 :(得分:2)

EquatableSelf作为关联类型要求,LanguageType间接来自Equatable,因此LanguageTypeSelf作为关联类型要求。