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
ამ გზით, წაკითხვის დროს შეიძლება წვდომა ნულოვან რუკაზე შეცდომის გარეშე, მაგრამ წერისთვის აუცილებელია რუკის წინასწარ შექმნა.