我在 GO 中实现了各种数据结构和算法,在我第一次运行 BST 时,我在这段代码中遇到了以下错误:
func insert(t Tree, k Node) {
var newT Tree
if t.root==nil {
t.setRoot(k)
}
else if k.key < t.root.key {
newT.setRoot(t.root.lc, newT)
insert(newT,k)
}
else {
newT.setRoot(t.root.rc, newT)
insert(newT,k)
}
}
行:
// else is highlighted as an "unknown token" the bracket is ": or newline expected" and everything else is "unknown token"
else {
newT.setRoot(t.root.rc, newT)
insert(newT,k)
}
看看这个:
https://gobyexample.com/if-else
看起来这应该可行,所以我很困惑我在这里做错了什么
最佳答案
else
必须与 在同一行,因为
}
和行尾之间会自动插入分号。
func insert(t Tree, k Node) {
var newT Tree
if t.root == nil {
t.setRoot(k)
} else if k.key < t.root.key {
newT.setRoot(t.root.lc, newT)
insert(newT, k)
} else {
newT.setRoot(t.root.rc, newT)
insert(newT, k)
}
}
关于转到 "unknown token"和 ": or newline expected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24740840/