Sobes.tech
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 дастрасӣ кард бе хато, аммо барои навишт, бояд харитаро пешакӣ сохта бошед.