我试图在swift中创建一个小类但是获取以下错误参数类型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
Run Code Online (Sandbox Code Playgroud)
这是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 <
Run Code Online (Sandbox Code Playgroud)
您需要传入data初始化程序T.而且也没有必要初始化泛型.
更改您的代码:
struct BST<T: Comparable> {
let root: Node<T>?
var count = 0
init(data: T) {
self.root = Node(data: data)
}
}//end class BST
Run Code Online (Sandbox Code Playgroud)