Sobes.tech
Senior

რისი ტიპის გადაკეთების ვარიანტში პანიკა შესაძლებელია და რა კონსტრუქცია მას თავიდან აცილებას უზრუნველყოფს?

sobes.tech AI

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

ტიპის დადასტურება (type assertion) დროს, თუ რეალური მნიშვნელობის ტიპი არ ემთხვევა ელოდებოდან, შეიძლება მოხდეს პანიკა. მაგალითად:

var i interface{} = "სტრიქონი"
// ცდა გარდაქმნას int-ად გამოიწვევს პანიკას
n := i.(int) // პანიკა: ინტერფეისის გარდაქმნა: interface {} არის string, არა int

პანიკის თავიდან ასაცილებლად, გამოიყენება ორი მნიშვნელობით დაბრუნებადი კონსტრუქცია — მეორე მიუთითებს, წარმატებით მოხდა გარდაქმნა თუ არა:

n, ok := i.(int)
if !ok {
    // შეცდომის დამუშავება გარდაქმნის დროს
}

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