我认为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'的重载
有没有办法为nil
Swift中的变量赋值?
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 次 |
最近记录: |