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 {
    // хөрвүүлэлтийн алдааг боловсруулна
}

Ингэж, аюулгүй төрөл баталгаажуулалт паникаас сэргийлж, төрөл тохирохгүй үед зөв зохистой боловсруулалт хийх боломжийг олгодог.