[英]argument type 'T.Type' does not conform to expected type 'Comparable'
我試圖在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
這是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
而不是T
而且也沒有必要初始化泛型。
更改您的代碼:
struct BST<T: Comparable> {
let root: Node<T>?
var count = 0
init(data: T) {
self.root = Node(data: data)
}
}//end class BST
self.root = Node(data : T) //Error Occurs in this line
您正在嘗試使用類型而不是值來初始化Node
。
嘗試
self.root = Node(data : data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.