swift - 参数类型“T.Type”不符合预期类型“Comparable”
问题描述
我正在尝试快速创建一个小类,但得到以下错误参数类型T.Type
不符合预期类型Comparable
有人可以帮忙吗?
struct BST<T: Comparable> {
let root: Node<T>?
var count = 0
init<T:Comparable>(data: T) {
self.root = Node(data : T) //Error Occurs in this line
}
}//end class BST
这是Node
类的代码。
class Node<T: Comparable> {
let data: T
var left: Node?
var right: Node?
init(data: T) {
self.data = data
} //end init
} //end class node
func == <T> (lhs: Node<T>, rhs: Node<T>) -> Bool {
return lhs.data == rhs.data
} //end ==
func < <T> (lhs: Node<T>, rhs: Node<T>) -> Bool {
if(rhs.data > lhs.data) {
return true
}
return false
} //end fun <
解决方案
您需要传入data
初始化程序 not T
。而且也没有必要使初始化通用。
更改您的代码:
struct BST<T: Comparable> {
let root: Node<T>?
var count = 0
init(data: T) {
self.root = Node(data: data)
}
}//end class BST
推荐阅读
- java - 这个私有方法的作用域是如何工作的?
- python - 添加列Numpy数组python
- typescript - 在哪里可以找到 tsc 错误列表?
- javascript - 从嵌入式 Google 表格中删除 Google 边框
- pdfbox - pdfbox 使用 StandardProtectionPolicy 禁用复制/粘贴
- firebase - Flutter FirebaseAuth 不向手机发送验证码
- git - 服务器上没有进行任何更改,但是当我切换分支和 git pull 时,它告诉我提交本地更改。为什么?
- python - Python unicode 错误读取其他应用程序生成的文件
- windows - 快捷方式属性表如何立即更改图标?
- c - 无论值来自变量还是固定数字,幂函数的输出都不同