我想在Golang中創建一個通用的二叉樹。我怎樣才能比較來自接口的數據和代碼中的輸入數據?這是我正在嘗試做的一個例子。是給我找麻煩的比較是這樣的如何比較Golang中的結構數據和接口數據?
} else if cur.data < data {
-
package DSAA
type TreeNode struct {
data interface{}
right *TreeNode
left *TreeNode
}
type BinarySearchTree struct {
root *TreeNode
}
func BSTCreate() *BinarySearchTree {
return &BinarySearchTree{nil}
}
func (b *BinarySearchTree) Insert(cur TreeNode, data interface{}) *BinarySearchTree {
if &cur == nil {
cur := &TreeNode{data, nil, nil}
} else if cur.data < data {
b = b.Insert(*cur.left, data)
} else {
b = b.Insert(*cur.right, data)
}
return b
}
什麼是你的數據,在運行時? – 2016-08-24 18:35:41
在使用reflect.TypeOf() – Sridhar
之前,檢查運行時類型是否相同。我計劃它是一個字符串或整數。類似於你可以在java和.compareTo中使用() –
bmacrevolution