Xcode抱怨它"无法分配Node类型的值来输入Node <_>?" 在第23,24,26,27行(enqueue的条件部分中'node'到'top'和'bottom'的赋值).我不确定这意味着什么,以及为什么Xcode会看到节点类型和顶部/底部的差异
class Node<T> {
var key: T?
weak var next: Node<T>?
weak var previous: Node<T>?
init(key: T, previous: Node? = nil) {
self.key = key
self.previous = previous
}
}
class Dequeue<T> {
private var count: Int = 0
private weak var top: Node<T>?
private weak var bottom: Node<T>?
func enqueue<T>(val: T) {
// if dequeue is empty
let node = Node<T>(key: val)
if top == nil {
self.top = node
self.bottom = node
} else {
self.bottom?.next = node
self.bottom = node
}
}
}
Run Code Online (Sandbox Code Playgroud)
Kev*_*vin 12
<T>从方法声明中删除泛型.
class Dequeue<T> {
...
func enqueue(val: T) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
将<T>在类声明适用于整个类,包括方法体.<T>方法体上的显式引入了一个新的泛型类型T,它隐藏了类的T类型; 由于它独立于全局T,因此编译器无法确保它们是兼容的.
| 归档时间: |
|
| 查看次数: |
1236 次 |
| 最近记录: |