0
從雨燕編程語言指南:具體類型的錯誤,同時增加約束的協議擴展
extension Collection where Iterator.Element:TextRepresentable
{
var textualDescription:String {
let itemsAsText = self.map { $0.textualDescription }
return "[" + itemsAsText.joined(separator: ", ") + "]"
}
}
...
let hamsters = [murrayTheHamster, morganTheHamster, mauriceTheHamster]
print(hamsters.textualDescription)
此時編譯器告訴我:
不支持使用'TextRepresentable'作爲符合協議'TextRepresentable'的具體類型。
我有點驚訝,因爲代碼是右出的語言指導。這是語言指南中的錯誤,還是我輸入了錯誤的內容?或者也許我的編譯器設置是錯誤的?
再看看指南 - 'murrayTheHamster','morganTheHamster'和'mauriceTheHamster'的類型爲'Hamster',不'TextRepresentable'。協議不符合自己,所以你不能使用'TextRepresentable'作爲符合'TextRepresentable'的類型。 – Hamish