我认为var value: T = nil是导致错误,因为XCode无法将nil值转换为泛型类型T.
class Node<T> {
var value: T = nil
var next: Node
init(value: T) {
self.value = value
self.next = Node()
}
init() {
self.next = Node()
}
}
Run Code Online (Sandbox Code Playgroud)
错误消息显示
无法找到接受所提供参数的'_coversion'的重载
有没有办法为nilSwift中的变量赋值?
Mag*_*alp 20
您需要将变量声明为可选:
var value: T? = nil
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎触发了未实现的编译器功能:
error: unimplemented IR generation feature non-fixed class layout
Run Code Online (Sandbox Code Playgroud)
您可以通过使用NSObject的类型约束声明T来解决它:
class Node<T:NSObject> {
var value: T? = nil
var next: Node
init(value: T) {
self.value = value
self.next = Node()
}
init() {
self.next = Node()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14265 次 |
| 最近记录: |