Sobes.tech
Junior — Middle

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

sobes.tech AI

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

Go-ში სლაისები (slices) არის სტრუქტურები, რომლებიც შეიცავენ მითითებას მასივზე, სიგრძეს და მოცულობას. თუ სლაისი არ არის ინიციალიზებული (ანუ, არის nil), მისი წაკითხვა გამოიწვევს პანიკას.

მაგალითად:

var s []int // nil-სლაისი
fmt.Println(s[0]) // პანიკა: შესრულების დროს შეცდომა: ინდექსი გარეთ დიაპაზონის

უსაფრთხო წაკითხვისთვის სლაისი უნდა იყოს ინიციალიზებული, მაგალითად, make-ის გამოყენებით ან არსებული მასივის მინიჭებით:

s := make([]int, 3)
fmt.Println(s[0]) // 0, უსაფრთხო

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