我正在用 Go 实现一棵树。我的 TreeNode 结构如下所示:
type TreeNode struct {
payload byte
parent *TreeNode
children map[byte]*TreeNode
}
在我的实现中,树的根节点是一个没有负载的特殊节点。否则有效负载始终是英文字母表中的单个小写字母。所以我的树初始化函数如下所示:
func createEmptyTree(fileName string) *TreeNode{
return &TreeNode{
nil, // Line #180
nil,
false,
map[byte]*TreeNode{},
}
}
不过,当我编译它时,出现以下错误:./main.go:180:9: cannot use nil as type byte in field value
看来我不能对字节变量使用nil
。在这种情况下我还有什么可以使用的吗?我可以轻松地使用 '0'
或其他非字母字符。但这似乎很老套。我该怎么办?
最佳答案
byte
是一个 numeric type ,实际上是 uint8
的别名。
这意味着它有默认值 zero value共 0 个。
关于go - Go 中的字节是否可以使用 nil 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53993586/