swift – 无法将Node类型的值分配给Node?

swift – 无法将Node类型的值分配给Node?,第1张

概述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 p 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,因此编译器无法确保它们是兼容的.

总结

以上是内存溢出为你收集整理的swift – 无法将Node类型的值分配给Node?全部内容,希望文章能够帮你解决swift – 无法将Node类型的值分配给Node?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1009699.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存