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