Junior — Middle
შეუძლია თუ არა ელემენტების დამატება Map-ში, რომელიც ჯერ არ შექმნილა ან არ მიიღო საწყის მნიშვნელობებს?
sobes.tech AI
პასუხი AI-სგან
Go ენის ფარგლებში, არ შეიძლება ელემენტების დამატება map-ში, თუ ის ჯერ არ არის ინიციალიზებული. როდესაც გამოაცხადებთ map ტიპის ცვლადს ინიციალიზაციის გარეშე, მას აქვს მნიშვნელობა nil, და ასეთი map-ში წერა გამოიწვევს შესრულების დროს პანიკას.
ელემენტების დამატებისთვის, ჯერ უნდა შექმნათ map make ფუნქციის გამოყენებით ან ინიციალიზიროთ ლიტერალით:
var m map[string]int // m == nil
m["key"] = 1 // პანიკა: დაწერა `nil` map-ში
m = make(map[string]int) // ახლა m ინიციალიზებულია
m["key"] = 1 // მუშაობს
// ან პირდაპირ ინიციალიზაცია
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // მუშაობს
ამიტომ, ელემენტების დამატებამდე, map უნდა იყოს შექმნილი და არ უნდა იყოს nil.