在Go语言中如何表示“null”值?

97

在Go语言中,如何表示“null”值?

type Node struct { 
    next *Node
    data interface{}
}

我想说

return &Node{ data: NULL, next: NULL }
2个回答

141

NULL的等价物是nil,如您所发现。但需要注意的是,在Go语言中通常不需要将变量初始化为nil或零,因为默认情况下所有变量(包括动态分配的变量)根据类型设置为“零值”(数字为零,引用为nil)。因此,在您的示例中,说new(Node)将导致一个具有两个字段nil的节点。


2
为什么最琐碎的事情是不同的 null/nil int i=0/i int =0 - Barel elbaz
@Barelelbaz 不同于什么?=)我的意思是,Go是一种独立的语言,它应该在Go的大局中做正确的事情,而不是试图使某些其他语言看起来具有欺骗性的相似之处。NULL vs nil是一个相当次要的外观问题,但int i vs i int是一个重大的改变,在复杂情况下可以提高可读性。(我说这话时对C充满感情和尊重,自90年代中期以来我一直在用它编程,但它并没有为良好语法设定黄金标准。) - Arkku
明白了,同意。 - Barel elbaz

25

我刚刚发现这是空值


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接