0Pricing
Go Academy · Ders

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.Power veya c.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.

Bu kursun tüm dersleri

  1. Struct Gömme
  2. Arayüz Gömme
  3. Yöntem Yükseltme
  4. Kalıtım Yerine Birleştirme
← Go Academy Sayfasına Dön