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