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