Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mengakses Kaedah Jenis Terbenam dalam Go Apabila Ia Terlalu Beban dalam Struktur Kanak-kanak?
Pembebanan Kaedah dalam Go: Mengakses Kaedah Jenis Terbenam
Apabila bekerja dengan struct dalam Go, adalah mungkin untuk menentukan kaedah pada kedua-dua induk dan struct terbenam (bersarang). Walau bagaimanapun, apabila kaedah terlebih beban dalam struct kanak-kanak, mengakses kaedah struct asas secara langsung mungkin kelihatan mustahil.
Mengatasi Kaedah dengan Melebihkan Kaedah
Dalam contoh yang disediakan, struct Pekerja membenamkan struct Manusia. Kedua-dua struct mentakrifkan kaedah SayHi(). Walau bagaimanapun, kaedah SayHi() struct Pekerja mengatasi kaedah dalam struct Manusia.
Mengakses Kaedah Jenis Terbenam
Untuk mengakses kaedah struct terbenam, walaupun kaedah terlebih beban , anda boleh menggunakan sintaks berikut:
parentMember.embeddedMemberName.methodName()
Dalam ini kes, untuk memanggil kaedah SayHi() struct Manusia daripada struct Pekerja, anda akan menggunakan:
sam.Human.SayHi()
Contoh Kod
Contoh berikut menunjukkan mengakses terbenam struct kaedah:
package main import "fmt" type Human struct { name string age int phone string } func (h *Human) SayHi() { fmt.Printf("Hi, I am %s you can call me on %s\n", h.name, h.phone) } type Employee struct { Human company string } func (e *Employee) SayHi() { fmt.Printf("Hi, I am %s, I work at %s. Call me on %s\n", e.name, e.company, e.phone) } func main() { sam := Employee{Human{"Sam", 45, "111-888-XXXX"}, "Golang Inc"} sam.SayHi() // calls Employee.SayHi() sam.Human.SayHi() // calls Human.SayHi() }
Output:
Hi, I am Sam, I work at Golang Inc. Call me on 111-888-XXXX Hi, I am Sam you can call me on 111-888-XXXX
Ini menunjukkan bahawa walaupun kaedah terlebih beban dalam struct kanak-kanak, anda masih boleh mengakses kaedah jenis terbenam menggunakan sintaks yang diterangkan di atas.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Kaedah Jenis Terbenam dalam Go Apabila Ia Terlalu Beban dalam Struktur Kanak-kanak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!