İçeriğe geç

Type Casting

Type casting, benzer veri tiplerinin birbirleri arasında dönüştürülmesidir.

Örnek olarak,

a := 3.14 // float64 tipinde
b := int(a) // int tipinde
fmt.Println(b) // 3

Yukarıdaki örnekte float64 tipindeki bir değerin int tipine dönüştürülmesini gördük.

İki tip de, sayısal veri tipi olduğu için type casting yaparak dönüştürülebildi.

Farklı bir örnek görelim.

metin := string(8378)
fmt.Println(metin) // ₺

Yukarıdaki örnekte 8378 sayısı string tipine çevrildiğinde çıktının ilareti olduğunu görmekteyiz. Bunun sebebi sayıdan string tipine çeviride, verilen sayının rune tipinde kabul edilmesidir. Bu yüzden Unicode tablosunda 8378 sayısı işaretine takabül ettiği için böyle bir çıktı görmekteyiz.

Karakter ve dize tipleri, sayısal tipler ile birbirleri arasında istediğimiz gibi dönüştürümediğimizi görebilirsiniz. Yani string tipinde “8378” çıktısı alamayız. Bunun için farklı bir yöntem kullanarak yapmamız gerekir. İlerleyen konularda göreceğiz.

Karakter ve dizi tipleri kendi aralarında type casting yapılabilir.

a := []rune("Merhaba Dünya")
fmt.Println(a) // [77 101 114 104 97 98 97 32 68 252 110 121 97]
a := []byte("Merhaba Dünya")
fmt.Println(a) // [77 101 114 104 97 98 97 32 68 195 188 110 121 97]
a := string([]byte{77, 101, 114, 104, 97, 98, 97, 32, 68, 195, 188, 110, 121, 97})
fmt.Println(a) // Merhaba Dünya