Sobes.tech
Junior — Middle

Әлі инициализацияланбаған Map түріндегі айнымалымен қандай әрекеттер жасауға болады?

sobes.tech AI

AI-дан жауап

Go тілінде map типті айнымалы әдепкі бойынша nil мәніне ие, егер ол инициализацияланбаса.

nil картасымен келесі әрекеттер рұқсат етілген:

  • Кілт бойынша мәнді оқу — мәннің нөлдік мәнін және кілттің болмау белгісін қайтарады.
  • value, ok := map[key] операторымен кілттің бар-жоғын тексеру.

Келесі әрекеттер орындалмайды:

  • Жазу (кілтке мән тағайындау) panic-ке әкеледі.
  • delete сияқты картаны өзгертетін функцияларды nil картада шақыру қауіпсіз және panic тудырмайды.

Мысал:

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

v, ok := m["key"] // ok == false, v == 0

// m["key"] = 10 // panic: assignment to entry in nil map

delete(m, "key") // қауіпсіз, ештеңе істемейді

Картаны жазу үшін оны инициализациялау керек, мысалы, make көмегімен:

m = make(map[string]int)
m["key"] = 10 // енді жұмыс істейді