Tür tanımları
- Go kursu
- Başlangıç
- Ders 23/90
- 4 dk
type anahtar kelimesiyle yeni türler tanımlamayı öğrenirsin.
Tür tanımları
type anahtar kelimesiyle var olan bir türden yeni, adlandırılmış bir tür oluşturulur. Yeni tür aynı veriyi taşır ama derleyici onu ayrı bir tür kabul eder:
type Celsius float64
type Fahrenheit float64
var c Celsius = 25
var f Fahrenheit = 77
// c + f → derleme hatası: farklı türlerBu sayede yanlış birimlerin karışması derleme anında yakalanır.
Yöntem eklemek ve takma ad
Kendi türüne yöntem ekleyebilirsin; bu, tür tanımlarının asıl gücüdür:
func (c Celsius) Fahrenheit() Fahrenheit {
return Fahrenheit(c*9/5 + 32)
}
fmt.Println(Celsius(100).Fahrenheit()) // 212type Ad = string (eşittir işaretiyle) ise yeni tür değil, yalnızca takma addır; byte ve rune bu şekilde tanımlanmıştır.
Uygulama Sıcaklık türü
type Celsius float64 ve type Fahrenheit float64 tanımla. func (c Celsius) Fahrenheit() Fahrenheit yöntemiyle c*9/5 + 32 hesapla ve Celsius(25).Fahrenheit() sonucunu yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
type Celsius float64
type Fahrenheit float64
func (c Celsius) Fahrenheit() Fahrenheit {
return Fahrenheit(c*9/5 + 32)
}
func main() {
fmt.Println(Celsius(25).Fahrenheit())
}Beklenen çıktı
77
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>type Yas int</code> tanımından sonra <code>var y Yas = 5; var n int = y</code> neden derlenmez?
- Yas ile int farklı türlerdir; int(y) gerekir Doğru cevap
- 5 bir Yas olamaz
- Yas sayı değildir
- Derlenir
Açıklama: Adlandırılmış türler arasında örtük atama yoktur; alttaki tür aynı olsa da açık dönüşüm yazılır.
2 Yeni tür
____ Metre float64
var uzunluk Metre = 3.5
type Metre float64
var uzunluk Metre = 3.5
Açıklama: type anahtar kelimesi yeni, adlandırılmış bir tür tanımlar.
3 Tanım ve anlamı
| Kavram | Anlamı |
|---|---|
type Celsius float64 |
Yeni tür |
type Ad = string |
Takma ad |
Celsius(25) |
Dönüşüm |
func (c Celsius) |
Yöntem |