Нулевое значение в 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.




5

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


3
Тот факт, что ваша первая ссылка не работает, является отличным примером того, почему ответы на переполнение стека должны быть ответами , а не ссылками.
pzkpfw

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.