Sobes.tech
Senior

Millises tüübi teisendamise variandis on võimalik paanikat tekitada ja milline konstruktsioon võimaldab seda vältida?

sobes.tech AI

Vastus AI-lt

Type assertion (tüüp kinnitamine) ajal, kui tegelik väärtuse tüüp ei vasta oodatule, võib tekkida paanik. Näiteks:

var i interface{} = "rida"
// Katse konverteerida int-ks põhjustab paanikat
n := i.(int) // paanik: liidese konverteerimine: interface {} on string, mitte int

Paanikast hoidumiseks kasutatakse konstruktsiooni kahe tagastatava väärtusega — teine näitab, kas konverteerimine õnnestus:

n, ok := i.(int)
if !ok {
    // konverteerimisvea töötlemine
}

Nii väldib turvaline tüüpide kinnitamine paanikat ja võimaldab olukorda õigesti hallata, kui tüübid ei kattu.