Sobes.tech
Junior — Middle

Оё имкон дорад, ки дар забони Go тағйир додани намуд байни намудҳои гуногуни маълумот анҷом дода шавад?

sobes.tech AI

Ҷавоб аз AI

Дар забони Go, ифодаи тағйирёбии намудҳо имконпазир аст, аммо он сахт ва бехатар аст. Тағйирёбии намудҳо байни намудҳои мувофиқ, масалан, байни намудҳои рақамӣ (int, float64 ва ғайра) ё байни намудҳои бо сохтори якхела (масалан, намудҳои фармоишӣ, ки асоси онҳоро намудҳои асосӣ ташкил медиҳанд) имконпазир аст. Манъ аст, ки ба осонӣ, масалан, сатрро ба рақам табдил додан, бе тағйирёбии равшан.

Масали тағйирёбии намудҳои рақамӣ:

var a int = 42
var b float64 = float64(a) // тағйирёбии равшан аз int ба float64

Ҳамчунин, мумкин аст, ки интерфейсҳоро ба намудҳои мушаххас тавассути assertion-и намуд табдил дод:

var i interface{} = "салом"
str, ok := i.(string)
if ok {
    fmt.Println(str)
}

Бинобар ин, тағйирёбии намудҳо дар Go талаб мекунад, ки онро ба таври равшан нишон диҳед ва танҳо барои намудҳои мувофиқ кор мекунад.