Wartość zerowa w Go

80

Jak wyrazić wartość „zerową” w Go?

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

I chcę powiedzieć

return &Node{ data: NULL, next: NULL }
fabrizioM
źródło

Odpowiedzi:

119

Jak już odkryłeś, odpowiednik NULLjest nil. Zwróć jednak uwagę, że generalnie nie musisz inicjować rzeczy do nillub zera w Go, ponieważ domyślnie wszystkie zmienne (w tym dynamicznie przydzielane) są ustawiane na „wartości zerowe” w zależności od typu (cyfry zero, odwołania nil). Więc w twoim przykładzie powiedzenie new(Node)spowodowałoby, że węzeł miałby oba pola nil.

Arkku
źródło
19

Właśnie się dowiedziałem nil

fabrizioM
źródło
6

niljest NULL w golang. .

suryakrupa
źródło
1
masz jakiś pomysł, dlaczego nazwano go nil zamiast null?
ProgramCpp
5

Myślę Zrozumienie Nil jest doskonała i kompleksowa intro nilw Go. Możesz również obejrzeć prezentację wideo tutaj .

Nan Xiao
źródło
3
Fakt, że Twój pierwszy link jest uszkodzony, jest doskonałym przykładem tego, dlaczego odpowiedzi na przepełnienie stosu powinny być odpowiedziami , a nie linkami.
pzkpfw