Go'da Tür Dönüşümleri
Açık dönüşümler, tür takma adları ve tanımlı türler
Go'da Tür Dönüşümleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
Açık Tür Dönüşümleri Neden Gerekli?
Go, türler arasında hiçbir zaman örtük dönüşüm yapmaz. Bu, küçük bir tamsayının daha büyük bir tamsayıya sessizce taşması veya bir kayan noktalı sayının hassasiyet kaybetmesi gibi fark edilmesi zor hataları önler.
- Dönüşümler açıkça yazılmalıdır:
T(value) - Derleyici, eşleşmeyen türleri derleme zamanında saptar
- Bu, Go kodunu öngörülebilir ve güvenli kılar
Sayısal Dönüşümler
Hedef türü bir işlev çağrısı olarak kullanarak sayısal türler arasında dönüşüm yapın:
package main
func main() {
var i int = 42
var f float64 = float64(i)
var u uint = uint(f)
_ = u
}Kırpılma Riski
Daha geniş bir türden daha dar bir türe dönüşüm yapmak değeri kırpar. Hata bildirilmez — dikkatli olmanız gerekir:
package main
func main() {
big := int64(300)
small := int8(big) // 300 % 256 = 44 — silent truncation!
_ = small
}string ve []byte Dönüşümleri
string ile []byte arasında dönüşüm yapmak verileri kopyalar:
package main
func main() {
s := "hello"
b := []byte(s) // string to byte slice
b[0] = 'H'
s2 := string(b) // byte slice to string
_ = s2
}string ve []rune
Unicode uyumlu karakter işlemleri için []rune türüne dönüştürün:
package main
func main() {
s := "Merhaba"
runes := []rune(s)
_ = len(runes) // character count, not byte count
}strconv Paketi
Dizeler ve sayılar arasında dönüşüm yapmak için strconv paketini kullanın:
import "strconv"
func main() {
n, err := strconv.Atoi("42") // string -> int
s := strconv.Itoa(123) // int -> string
_ = n; _ = err; _ = s
}strconv.ParseFloat ve FormatFloat
Kayan noktalı sayı dizelerini güvenle ayrıştırın ve biçimlendirin:
import "strconv"
func main() {
f, err := strconv.ParseFloat("3.14", 64)
if err != nil { return }
s := strconv.FormatFloat(f, 'f', 2, 64) // "3.14"
_ = s
}Tür Takma Adları ve Tanımlı Türler
Go, tür takma adları ile tanımlı türler arasında ayrım yapar:
type Celsius float64— yeni bir tanımlı tür;float64türüne dönüştürmek veya bu türden dönüştürmek için açık dönüşüm gerekirtype Celsius = float64— takma ad;float64ile birbirinin yerine kullanılabilir
Tanımlı Tür Örneği
Tanımlı türler API netliğini artırır ve değerlerin yanlışlıkla birbirine karıştırılmasını önler:
type Celsius float64
type Fahrenheit float64
func CtoF(c Celsius) Fahrenheit {
return Fahrenheit(c*9/5 + 32)
}
func main() {
boiling := Celsius(100)
_ = CtoF(boiling)
}Arayüz Dönüşümleri
Herhangi bir değer, sağladığı bir arayüz türüne dönüştürülebilir. Geri dönüştürmek için tür doğrulaması gerekir:
var i interface{} = "hello"
s, ok := i.(string) // type assertion
if ok {
_ = s // safe to use
}Hızlı Kontrol
Go'da bir dizeyi int türüne hangi işlev dönüştürür?
Özet: Tür Dönüşümleri
Go tür dönüşümleriyle ilgili temel çıkarımlar:
- Go örtük dönüşüm yapmaz —
T(value)söz dizimini kullanın - Sayısal dönüşümler kesme yapabilir — risk konusunda açık olun
[]byte(s)vestring(b)verileri kopyalar- Dize-sayı dönüşümleri için
strconv.Atoi/strconv.Itoakullanın - Tanımlı türler açık dönüşüm gerektirir; diğer adlar gerektirmez
Sonraki ders: if, for ve switch ile Denetim Akışı.
Yapay zeka eğitmeniyle Go öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 51
- Dersler
- 203
Sıkça Sorulan Sorular
“Go'da Tür Dönüşümleri” dersi ücretsiz mi?
Evet — “Go'da Tür Dönüşümleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“Go'da Tür Dönüşümleri” dersinde ne öğreneceğim?
Açık dönüşümler, tür takma adları ve tanımlı türler Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Go'da Tür Dönüşümleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Go'da Değişken Tanımlama
- Go'nun Yerleşik Türleri
- Sabitler ve iota
- Go'da Tür Dönüşümleri