Struct tanımı
- Go kursu
- Başlangıç
- Ders 69/90
- 4 dk
type ile struct tanımlamayı öğrenirsin.
Struct tanımı
Struct, ilgili verileri adlandırılmış alanlar hâlinde bir araya getiren türdür:
type Kitap struct {
Title string
Yazar string
Sayfa int
}Büyük harfle başlayan alanlar paket dışından (ve JSON gibi kütüphanelerden) görünür; küçük harfle başlayanlar yalnızca paket içindedir. Go'da sınıf yoktur; veri struct'larla, davranış yöntemlerle ifade edilir.
Struct karşılaştırma
Tüm alanları karşılaştırılabilir olan struct'lar == ile karşılaştırılabilir ve map anahtarı olabilir. Struct atandığında tüm alanları kopyalanır:
a := Kitap{"Dune", "Herbert", 412}
b := a
b.Sayfa = 500
fmt.Println(a.Sayfa, a == b) // 412 falseDilim veya map alanı olan struct'lar == ile karşılaştırılamaz.
Uygulama Kitap struct'ı
Kitap struct'ını (Title, Yazar, Sayfa) tanımla. a := Kitap{"Dune", "Herbert", 412} oluştur, b := a ile kopyala, b.Sayfa = 500 yap ve a.Sayfa, b.Sayfa değerlerini yazdır.
Başlangıç kodu
package main
import "fmt"
func main() {
// buraya yaz
}Örnek çözüm
package main
import "fmt"
type Kitap struct {
Title string
Yazar string
Sayfa int
}
func main() {
a := Kitap{"Dune", "Herbert", 412}
b := a
b.Sayfa = 500
fmt.Println(a.Sayfa, b.Sayfa)
}Beklenen çıktı
412 500
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>var k Kitap</code> tanımından sonra <code>k.Sayfa</code> kaçtır?
- 0 Doğru cevap
- nil
- Tanımsız
- Derleme hatası
Açıklama: Struct'ın her alanı kendi sıfır değeriyle başlar: string "", int 0.
2 Struct türü
type Nokta ____ {
X, Y int
}
type Nokta struct {
X, Y int
}
Açıklama: type Ad struct { ... } yeni bir struct türü tanımlar.
3 Alan ve görünürlük
| Kavram | Anlamı |
|---|---|
Title |
Dışa aktarılmış |
sayfa |
Paket içi |
var k Kitap |
Sıfır değerli alanlar |
b := a |
Tüm alanlar kopyalanır |