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.