Go Academy · Ders

Go'da Tür Dönüşümleri

Açık dönüşümler, tür takma adları ve tanımlı türler

4. ders / 412 adım

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; float64 türüne dönüştürmek veya bu türden dönüştürmek için açık dönüşüm gerekir
  • type Celsius = float64 — takma ad; float64 ile 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) ve string(b) verileri kopyalar
  • Dize-sayı dönüşümleri için strconv.Atoi / strconv.Itoa kullanın
  • Tanımlı türler açık dönüşüm gerektirir; diğer adlar gerektirmez

Sonraki ders: if, for ve switch ile Denetim Akışı.

Başlamak ücretsiz

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

  1. Go'da Değişken Tanımlama
  2. Go'nun Yerleşik Türleri
  3. Sabitler ve iota
  4. Go'da Tür Dönüşümleri
← Go Academy Sayfasına Dön