Sobes.tech
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-ის გამოყენებით.