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 талаб мекунад, ки онро ба таври равшан нишон диҳед ва танҳо барои намудҳои мувофиқ кор мекунад.