Sobes.tech
Junior — Middle

Може ли да се извуче вредност из мапе која још увек није иницијализована?

sobes.tech АИ

Одговор од АИ

У Go, ако mapa (mapa) nije inicijalizovana (tj. jednaka je nil), pokušaj da se iz nje izvuku vrednosti po ključevi neće izazvati paniku, već će jednostavno vratiti početnu vrednost za tip vrednosti i boolean zastavicu false, što ukazuje da ključ ne postoji.

Primer:

var m map[string]int // m == nil

value, ok := m["key"]
fmt.Println(value, ok) // Ispisaće: 0 false

Međutim, ako pokušate da zapišete vrednost u neinicijalizovanu mapu, doći će do panike:

m["key"] = 10 // panika: dodela u nil mapu

Zato, za sigurnu upotrebu mape, potrebno je da je inicijalizujete, na primer, pomoću make:

m = make(map[string]int)
m["key"] = 10 // sada radi ispravno