簡體   English   中英

參數類型'T.Type'不符合預期類型'Comparable'

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM