字符串的零是多少?

Dea*_*ean 127 string go

func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key
Run Code Online (Sandbox Code Playgroud)

文件说:

NewKey创建一个新密钥.善良不能空虚.stringID和intID中的一个或两个必须为零.如果两者都为零,则返回的密钥不完整.父母必须是完整的密钥或零.

字符串的零是多少?

我试过0nil,和我有这样的错误:

cannot use nil as type string in function argument
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 219

那是"":

var s string
fmt.Println(s=="") // prints "true"
Run Code Online (Sandbox Code Playgroud)

一个字符串不能是nil(但是一个*stringcan).

你可以简单测试一下

if stringId=="" {
Run Code Online (Sandbox Code Playgroud)

要传入零字符串stringID,请使用

k := NewKey(c, "kind", "", 0, p)
Run Code Online (Sandbox Code Playgroud)

规格:

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