Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh mengakses kaedah jenis terbenam dalam Go apabila Kaedah Lebih Muatan digunakan?
Pemuatan Terlebih Kaedah dan Akses Jenis Terbenam dalam Go
In Go, Pemuatan Terlebih Kaedah membenarkan takrifan berbilang kaedah dengan nama yang sama tetapi berbeza parameter atau jenis pulangan. Apabila struct Go mengandungi struct lain sebagai jenis terbenam, ia menimbulkan persoalan untuk mengakses kaedah jenis terbenam.
Akses Kaedah Jenis Terbenam
Untuk mengakses kaedah jenis terbenam:
Contoh
Pertimbangkan kod berikut:
package main import "fmt" type Human struct { name string age int phone string } type Employee struct { Human company string } func (h *Human) SayHi() { fmt.Printf("Hi, I am %s you can call me on %s\n", h.name, h.phone) } 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 }
Dalam ini contoh:
Kaedah Lebih Muatan dan Jenis Terbenam
Apabila kaedah jenis terbenam dibebankan, struct anak mempunyai akses kepada semua lebihan beban . Contohnya:
package main import "fmt" type A struct { SayHi func(string) } type B struct { A } func main() { a := B{} a.SayHi = func(s string) { fmt.Println("Hello", s) } a.SayHi("World") // prints "Hello World" }
Dalam contoh ini:
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengakses kaedah jenis terbenam dalam Go apabila Kaedah Lebih Muatan digunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!