Yöntem Yükseltme
Gömme yoluyla yöntemleri devralın
Yöntem Yükseltme, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 3. 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.
Gömme Yoluyla Yöntem Kalıtımı
Bir türü gömdüğünüzde onun yöntemleri de yükseltilir. Dış tür, bu yöntemleri sanki kendisi tanımlamış gibi çağırabilir; bu, Go'nun kalıtım biçimidir.
Yükseltilmiş Bir Yöntem
Car, Engine'i gömer ve onun Start yöntemini ek bir işlem yapmadan kazanır.
package main
import "fmt"
type Engine struct{}
func (Engine) Start() { fmt.Println("engine started") }
type Car struct{ Engine }
func main() {
c := Car{}
c.Start()
}Yöntemler Gömülü Değer Üzerinde Çalışır
Yükseltilmiş bir yöntem gömülü alan üzerinde çalışır; dış yapı üzerinde değil. Dış yapının diğer alanlarını göremez.
package main
import "fmt"
type Counter struct{ n int }
func (c *Counter) Inc() { c.n++ }
func (c Counter) Get() int { return c.n }
type Widget struct{ Counter }
func main() {
w := Widget{}
w.Inc()
w.Inc()
fmt.Println(w.Get())
}Bir Yöntemi Geçersiz Kılma
Yükseltilmiş yöntemi geçersiz kılmak için dış yapıda aynı ada sahip bir yöntem tanımlayın. Dış yapıdaki yöntem önceliklidir.
package main
import "fmt"
type Animal struct{}
func (Animal) Speak() string { return "..." }
type Dog struct{ Animal }
func (Dog) Speak() string { return "Woof" }
func main() {
fmt.Println(Dog{}.Speak())
}Gömülü Sürümü Çağırma
Geçersiz kıldıktan sonra bile özgün yönteme gömülü tür adını kullanarak erişebilirsiniz.
package main
import "fmt"
type Animal struct{}
func (Animal) Speak() string { return "generic" }
type Dog struct{ Animal }
func (d Dog) Speak() string { return "Woof + " + d.Animal.Speak() }
func main() {
fmt.Println(Dog{}.Speak())
}Yükseltme ve Arayüzler
Yükseltilmiş yöntemler dış türün yöntem kümesinin parçası olduğundan, dış tür gömülü türün yöntemlerini kullanarak arayüzleri karşılayabilir.
package main
import "fmt"
type Stringer interface{ String() string }
type Base struct{ name string }
func (b Base) String() string { return b.name }
type Wrapper struct{ Base }
func main() {
var s Stringer = Wrapper{Base{"hi"}}
fmt.Println(s.String())
}İşaretçi ve Değer Yöntem Kümeleri
Gömülü türde işaretçi alıcılı yöntemler varsa, bu yöntemler yalnızca dış yapıya işaret eden bir işaretçinin (veya adreslenebilir bir değerin) yöntem kümesine yükseltilir.
Varsayılan Davranış için Gömme
Makul varsayılan yöntemler sağlayan bir türü gömün; ardından özelleştirmeniz gereken yalnızca birkaç yöntemi geçersiz kılın. Bu, güçlü bir yeniden kullanım düzenidir.
package main
import "fmt"
type DefaultHandler struct{}
func (DefaultHandler) Handle() string { return "default" }
type CustomHandler struct{ DefaultHandler }
func (CustomHandler) Handle() string { return "custom" }
func main() {
fmt.Println(CustomHandler{}.Handle())
}Gerçek Çok Biçimlilik Yok
Klasik OOP'nin aksine, gömülü yöntem dış yapının geçersiz kıldığı yönteme geri yönlendirilmez. Go'da gömme yoluyla sanal yöntem yönlendirmesi yoktur.
Birden Çok Düzeyde Yükseltme
Yöntemler geçişli olarak yükseltilir: A, B'yi ve B, C'yi gömüyorsa A da belirsizlik olmadığı sürece C'nin yöntemlerini kazanır.
Yükseltme Ne Zaman Yararlıdır
- Davranışı yeniden yazmadan yeniden kullanmak
- Geçersiz kılabileceğiniz varsayılanlar sağlamak
- Gömülü yöntemler aracılığıyla arayüzleri karşılamak
Hızlı Kontrol
Yöntem yükseltme bilginizi sınayın.
Özet
Yöntem yükseltmeyi öğrendiniz.
- Gömülü yöntemler dış türe yükseltilir
- Dış yapıdaki yöntemler yükseltilenleri geçersiz kılar
- Özgün yönteme gömülü tür adını kullanarak erişin
- Yükseltme arayüzleri karşılamaya yardımcı olur; ancak sanal yönlendirme yoktur
Sıkça Sorulan Sorular
“Yöntem Yükseltme” dersi ücretsiz mi?
Evet — “Yöntem Yükseltme” 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.
“Yöntem Yükseltme” dersinde ne öğreneceğim?
Gömme yoluyla yöntemleri devralın 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 3. dersidir.
“Yöntem Yükseltme” 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
- Struct Gömme
- Arayüz Gömme
- Yöntem Yükseltme
- Kalıtım Yerine Birleştirme