swift – 无法将Node类型的值分配给Node?
发布时间:2020-12-14 04:47:52 所属栏目:百科 来源:网络整理
导读:Xcode抱怨它“无法分配Node类型的值来输入Node _?”在第23,24,26,27行(enqueue的条件部分中’node’到’top’和’bottom’的赋值).我不确定这意味着什么,以及为什么Xcode会看到节点类型和顶部/底部的差异 class NodeT { var key: T? weak var next: NodeT?
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 } } } 解决方法
删除通用< T>来自方法声明.
class Dequeue<T> { ... func enqueue(val: T) { ... } } < T>在类声明中适用于整个类,包括方法体.明确的< T>在方法体上引入了一个新的泛型类型T,它隐藏了类的T类型;由于它独立于全局T,因此编译器无法确保它们是兼容的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |