Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了swift – 无法将Node类型的值分配给Node?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

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?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: