func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key
文档说:
NewKey创建一个新密钥。善良不能空虚。一个或两个 stringID和intID必须零。如果两者都为零,那么关键 返回是不完整的。父母必须是完整的密钥或零。
字符串的零是什么?
我尝试了0
和nil
,我收到的错误如下:
cannot use nil as type string in function argument
答案 0 :(得分:212)
那是""
:
var s string
fmt.Println(s=="") // prints "true"
字符串不能为零(但*string
可以)。
您可以简单地测试
if stringId=="" {
要在stringID
中传递零字符串,请使用
k := NewKey(c, "kind", "", 0, p)
当分配内存来存储值时,通过a 声明或调用make或new,并且没有明确的初始化 如果提供,则为存储器提供默认初始化。每 将此类值的元素设置为其类型的零值:false 对于布尔值,0表示整数,0.0表示浮点数,“”表示字符串,和nil 用于指针,函数,接口,切片,通道和地图。
答案 1 :(得分:0)
在这种情况下为空字符串,或者您可以使用NewIncompleteKey()