我浏览了Swift的库代码,发现:
extension T! : Printable {
var description: String { get }
}
代码片段似乎在所有类型中扩展了“description”字段。 当我尝试在我的代码中做同样的事情时,我得到了错误:
example.swift:10:11: 非名义类型'T!'无法扩展
protocol MyProtocol {
// ...
}
extension T! : MyProtocol { // error: Non-nominal...
// ...
}
以下是类似的问题:
但它们没有解决以下问题:
- 这里发生了什么? 为什么库代码可以,但我的代码不行?
- 是否可以对所有类型或符合特定协议的所有类型进行操作?