【发布时间】:2017-04-10 10:43:20
【问题描述】:
来自 Swift 编程语言指南:
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的类型。