Struct Gömme
Struct'ları birleştirin
Struct Gömme, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. 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.
Yapıları Birleştirme
Go'da sınıf kalıtımı yoktur. Bunun yerine gömme sunulur: Alanlarını ve yöntemlerini yeniden kullanmak için bir yapıyı alan adı vermeden başka bir yapının içine yerleştirebilirsiniz.
Anonim Alanlar
Gömülü bir alan yalnızca tür belirtilerek, ad verilmeden tanımlanır. Üyeleri dış yapıya yükseltilir.
package main
import "fmt"
type Engine struct{ Power int }
type Car struct {
Engine
Brand string
}
func main() {
c := Car{Engine: Engine{Power: 150}, Brand: "Coddy"}
fmt.Println(c.Power, c.Brand)
}Yükseltilen Alanlara Erişme
Power gömülü Engine'e ait olsa da c.Power ifadesini doğrudan okuyabilirsiniz. Buna alan yükseltme denir.
Tam Yol Hâlâ Çalışır
Gömülü yapıya tür adını açıkça kullanarak her zaman erişebilirsiniz.
package main
import "fmt"
type Engine struct{ Power int }
type Car struct{ Engine }
func main() {
c := Car{Engine{200}}
fmt.Println(c.Engine.Power)
fmt.Println(c.Power)
}Gömme ve Adlandırılmış Alan Karşılaştırması
Adlandırılmış bir alan (engine Engine) c.engine.Power gerektirir. Gömme (Engine) üyeleri yükselttiği için c.Power yazarsınız. Gömme, bir türü olma ilişkisini ifade eder.
Gömülü Yapıları Başlatma
Bileşik bir sabit içinde alan anahtarı olarak tür adını kullanın.
package main
import "fmt"
type Address struct{ City string }
type User struct {
Address
Name string
}
func main() {
u := User{Address: Address{City: "Istanbul"}, Name: "Mert"}
fmt.Println(u.Name, "in", u.City)
}Birden Çok Gömme
Bir yapı birkaç türü gömebilir ve bu türlerin alanlarını birlikte kullanabilir.
package main
import "fmt"
type Timestamps struct{ Created string }
type Author struct{ Name string }
type Post struct {
Timestamps
Author
Title string
}
func main() {
p := Post{Timestamps{"today"}, Author{"Ada"}, "Hello"}
fmt.Println(p.Title, p.Name, p.Created)
}Ad Çakışmaları
İki gömülü tür aynı alan adını paylaşırsa belirsiz başvuru derleme hatasına yol açar; ayrım yapmak için başvuruyu tür adıyla nitelemeniz gerekir.
Dış Yapının Gölgelemesi
Dış yapıda tanımlanan bir alan, aynı ada sahip yükseltilmiş alanı gölgeler. Nitelendirilmemiş erişimde dış alan önceliklidir.
package main
import "fmt"
type Base struct{ ID int }
type Item struct {
Base
ID int
}
func main() {
i := Item{Base{1}, 99}
fmt.Println(i.ID, i.Base.ID)
}İşaretçi Gömme
Bir işaretçi türünü gömebilirsiniz. Üyeler yine yükseltilir; ancak işaretçiyi başlatmanız gerekir, aksi hâlde nil başvurusu hatasıyla karşılaşabilirsiniz.
package main
import "fmt"
type Logger struct{ Prefix string }
type Service struct{ *Logger }
func main() {
s := Service{Logger: &Logger{Prefix: "[svc]"}}
fmt.Println(s.Prefix)
}Ne Zaman Gömme Kullanılır
- Ortak alanları yeniden kullanmak (zaman damgaları, kimlikler)
- Daha küçük türlerden daha kapsamlı türler oluşturmak
- Derin iç içe geçirmeden ve uzun erişim yollarından kaçınmak
Hızlı Kontrol
Yapı gömme bilginizi sınayın.
Özet
Yapı gömmeyi öğrendiniz.
- Anonim alanlar üyeleri dış yapıya yükseltir
c.Powerveyac.Engine.Powerüzerinden erişin- Dış alanlar yükseltilmiş alanları gölgeler
- Çakışmalar açıkça nitelendirme gerektirir
- İşaretçi gömme de çalışır
Sıkça Sorulan Sorular
“Struct Gömme” dersi ücretsiz mi?
Evet — “Struct Gömme” 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.
“Struct Gömme” dersinde ne öğreneceğim?
Struct'ları birleştirin 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 1. dersidir.
“Struct Gömme” 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.