go - Go 中的字节是否可以使用 nil 值?

标签 go

我正在用 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/

相关文章:

python - 仅编码无符号整数时的base64字符串长度计算

date - 仅比较日期部分时间。Golang 中的时间

go - 使用 Apollo Client 和 graphql-go 的 Graphql 查询错误为 'Unknown type Int'

go build 找不到包源

go - 如何编写接受任何映射的函数

go - 使用反射设置指针值?

go - 是否使用指针定义golang struct函数

mysql - 如何为gorm组织多个外键

session - Gorilla session 不适用于客户端的 CORS

git - 在 golang 中导入私有(private)存储库时版本和 https 引用无效