一尘不染

字符串的零是什么?

go

func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key

文档说:

NewKey 创建一个新密钥。种类不能为空。stringID 和 intID 之一或两者必须为零。如果两者都为零,则返回的密钥不完整。parent 必须是完整的键或 nil。

字符串的零是什么?

我试过0and nil,我得到了如下错误:

cannot use nil as type string in function argument

阅读 365

收藏
2021-11-15

共1个答案

一尘不染

那是""

var s string
fmt.Println(s=="") // prints "true"

字符串不能为零(但*string可以)。

你可以简单地测试

if stringId=="" {

要在 中传递零字符串stringID,请使用

k := NewKey(c, "kind", "", 0, p)

规范

当通过声明或调用 make 或 new 分配内存来存储值时,并且未提供显式初始化,内存将被赋予默认初始化。这种值的每个元素都被设置为其类型的零值:布尔值为 false,整数为 0,浮点数为 0.0,字符串”“,指针、函数、接口、切片、通道和映射为 nil。

2021-11-15