字符串的零是多少?


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

该文件说:

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

字符串的零是多少?

我尝试了0nil,但出现类似以下错误:

cannot use nil as type string in function argument

Answers:


226

那是""

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

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

您可以简单地测试

if stringId=="" {

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

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

规格

当通过声明或调用make或new分配内存以存储值时,没有提供任何显式初始化,则为该内存提供默认初始化。此值的每个元素的类型都设置为零:布尔值为false,整数值为0,浮点数为0.0,字符串“”,指针,函数,接口,切片,通道和映射为nil。


一个零值字符串和* string的简单测试:var s string; fmt.Println(s ==“”,* new(* string)== nil)
Tom J

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.