【发布时间】:2014-06-24 18:29:56
【问题描述】:
浏览我发现的 Swift 库代码:
extension T! : Printable {
var description: String { get }
}
sn-p 似乎用“描述”字段扩展了所有类型。 当我尝试在我的代码中做同样的事情时,我得到了错误:
example.swift:10:11: 非标称类型 'T!'无法扩展
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?
但他们没有解决:
- 这里发生了什么?为什么库代码可以,但我的代码……不行?
- 是否所有类型或所有类型都符合特定协议?
【问题讨论】:
-
类似问题(没有接受的答案)在这里:stackoverflow.com/questions/24185549/….
-
可能有some double-standard going on here,Swift 开发者将一些功能留给自己。
-
你是对的!我想知道为什么库代码有效,但我的代码无法编译。