Junior — Middle
Оё имкон дорад, ки арзиш аз харитае, ки ҳанӯз инициализатсия нашудааст, гирифта шавад?
sobes.tech AI
Ҷавоб аз AI
Дар Go, агар харита (map) оғоз нашуда бошад (яъне, баробар ба nil бошад), кӯшиши гирифтани арзиш аз он бо калид панаикаро ба вуҷуд намеорад, балки танҳо арзиши сифрро барои навъи арзиш ва рамзи false бармегардонад, ки нишон медиҳад, ки калид вуҷуд надорад.
Масалан:
var m map[string]int // m == nil
value, ok := m["key"]
fmt.Println(value, ok) // Натиҷа: 0 false
Аммо, агар кӯшиш кунед, ки арзишро ба харитае, ки оғоз нашудааст, нависед, панаика ба амал меояд:
m["key"] = 10 // панаика: таъин ба вуруди дар харитаи nil
Аз ин рӯ, барои истифодаи бехатари харита, бояд онро оғоз диҳед, масалан, бо ёрии make:
m = make(map[string]int)
m["key"] = 10 // ҳоло дуруст кор мекунад