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 // პანიკა: დაწერა `nil` map-ში

m = make(map[string]int) // ახლა m ინიციალიზებულია
m["key"] = 1 // მუშაობს

// ან პირდაპირ ინიციალიზაცია
m2 := map[string]int{"initial": 10}
m2["key"] = 1 // მუშაობს

ამიტომ, ელემენტების დამატებამდე, map უნდა იყოს შექმნილი და არ უნდა იყოს nil.