Sobes.tech
Junior — Middle

Меъёри Map-ро, ки ҳанӯз сохта нашуда ё арзиши ибтидоӣ нагирифтааст, илова кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Дар забонҳои Go, илова кардани унсурҳо ба map мумкин нест, агар он аллакай инициализатсия нашуда бошад. Вақте ки тағйирёбанда аз навъи map бе инициализация эълон мешавад, арзиши nil дорад, ва кӯшиши навишт ба чунин map дар вақти иҷро боиси паника мешавад.

Барои илова кардани унсурҳо, аввал бояд map-ро бо истифода аз функсияи make ё бо литер инициализатсия кард:

var m map[string]int // m == nil
m["key"] = 1 // паника: таъин ба вуруди дар `map`-и `nil`

m = make(map[string]int) // ҳоло m инициализатсия шудааст
m["key"] = 1 // кор мекунад

// ё мустақиман инициализатсия кардан
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // кор мекунад

Пеш аз илова кардани унсурҳо, map бояд сохта шавад ва набояд nil бошад.