Sobes.tech
Junior — Middle

როგორ მივიღოთ წვდომა მნიშვნელობებზე იმ ლექსიკონში, რომელიც ჯერ კიდევ წინასწარ შექმნილი არ არის?

sobes.tech AI

პასუხი AI-სგან

Go ენაში, თუ რუკა (map) ჯერ კიდევ არ არის შექმნილი (ანუ, nil), გასაღებით ელემენტებზე წვდომა არ გამოიწვევს პანიკას, არამედ უბრალოდ დააბრუნებს ელემენტის ტიპის ნულოვან მნიშვნელობას.

მაგალითად:

var m map[string]int // m == nil
fmt.Println(m["key"]) // გამოიტანს 0, არ გამოიწვევს შეცდომას

თუმცა, ნულოვანი რუკაზე მნიშვნელობის მინიჭება გამოიწვევს პანიკას:

m["key"] = 10 // პანიკა: მინიჭება ნულოვან რუკაზე

ამიტომ, წერის წინ უნდა დარწმუნდე, რომ რუკა ინიციალიზებულია, მაგალითად:

m = make(map[string]int)
m["key"] = 10

ამ გზით, წაკითხვის დროს შეიძლება წვდომა ნულოვან რუკაზე შეცდომის გარეშე, მაგრამ წერისთვის აუცილებელია რუკის წინასწარ შექმნა.