浏览斯威夫特的库代码,我发现:在Swift中扩展所有类型?
extension T! : Printable {
var description: String { get }
}
的片段似乎与“说明”字段延长所有类型。 当我尝试做同样的事情在我的代码,我得到错误:
example.swift:10:11: Non-nominal type 'T!' cannot be extended
protocol MyProtocol {
// ...
}
extension T! : MyProtocol { // error: Non-nominal...
// ...
}
有在类似的问题:
- How can I extend typed Arrays in Swift?
- What's the difference between Optional<T> and optional types in Swift? Extending Optional to carry error information?
但他们未能解决:
- 这是怎么回事?为什么库代码没问题,但我的代码...不是?
- 是否有可能符合特定协议的所有类型或所有类型?
类似的问题(没有接受答案)在这里:http://stackoverflow.com/questions/24185549/whats-the-difference-between-optionalt-and-optional-types-in-swift-error-ha。 –
Swift开发人员可以为自己保留一些*功能。[http://en.wikipedia.org/wiki/Quod_licet_Iovi,_non_licet_bovi]可能存在[某些双重标准在这里]。 – dasblinkenlight
你是对的!我想知道为什么库代码可以工作,但我的代码不能编译。 – Andy