Нулевое значение в Go

80

Как выразить в Go "нулевое" значение?

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

И я хочу сказать

return &Node{ data: NULL, next: NULL }
фабрициоМ
источник

Ответы:

119

Эквивалент NULLis nil, как вы уже обнаружили. Тем не менее, обратите внимание, что вам обычно не нужно инициализировать объекты до nilнуля или нуля в Go, потому что по умолчанию все переменные (включая динамически назначаемые) установлены на «нулевые значения» в соответствии с типом (числа ноль, ссылки nil). Итак, в вашем примере высказывание new(Node)приведет к Node с обоими полями nil.

Аркку
источник
6

nilявляется NULL в голанге. .

сурьякрупа
источник
1
любая идея, почему он был назван nil вместо null?
ProgramCpp
5

Я думаю, что Understanding Nil - отличное и исчерпывающее вступление к nilin Go. Вы также можете посмотреть презентационное видео здесь .

Нан Сяо
источник
3
Тот факт, что ваша первая ссылка не работает, является отличным примером того, почему ответы на переполнение стека должны быть ответами , а не ссылками.
pzkpfw
Название видео: «GopherCon 2016: Francesc Campoy - Understanding nil»
Брент