Rumah >pembangunan bahagian belakang >Golang >Ketahui lebih lanjut tentang definisi dan penggunaan kaedah Golang dengan nama yang sama
Golang ialah bahasa yang ditaip kuat, disusun secara statik yang dibangunkan oleh Google. Sintaks dan kecekapannya yang ringkas menjadikannya bahasa pilihan bagi banyak syarikat Internet. Kaedah dengan nama yang sama adalah ciri tatabahasa yang menarik dalam bahasa ini. Artikel ini akan memperkenalkan definisi, senario penggunaan dan langkah berjaga-jaga bagi kaedah Golang dengan nama yang sama.
Di Golang, kaedah dengan nama yang sama merujuk kepada berbilang kaedah dengan nama kaedah yang sama. Kaedah ini boleh muncul dalam jenis yang sama atau dalam jenis yang berbeza.
Kaedah dengan nama yang sama mesti memenuhi syarat berikut:
(1) Mereka mesti ditakrifkan pada jenis penerima yang berbeza
(2) Mereka mesti mempunyai senarai parameter yang berbeza; > (3) Nilai pulangan mereka boleh berbeza, tetapi nama kaedah mestilah sama.
type Person struct{ Name string Age int } func (p Person) Print(){ fmt.Printf("Name: %s, Age: %d", p.Name, p.Age) } func (p *Person) Print(){ fmt.Printf("Name: %s, Age: %d", p.Name, p.Age) }Dalam contoh di atas, struktur Orang mentakrifkan dua kaedah dengan nama yang sama, Cetak. Kaedah Cetak pertama menerima nilai jenis Orang sebagai penerima, manakala kaedah Cetak kedua menerima penunjuk untuk menaip Orang sebagai penerima.
p := Person{ Name: "Tom", Age: 18, } p.Print() // Name: Tom, Age: 18 pp := &p pp.Print() // Name: Tom, Age: 18Dalam contoh di atas, kami menggunakan objek yang sama untuk memanggil dua kaedah. Memandangkan kaedah Cetak pertama menerima nilai jenis Orang sebagai penerima, kita boleh menggunakan p.Print() untuk memanggilnya. Kaedah Cetak kedua menerima nilai jenis penunjuk sebagai penerima, jadi kita perlu memanggilnya menggunakan penunjuk ke p.
(2) Senarai parameter kaedah dengan nama yang sama tidak boleh sama
(3) Nilai pulangan kaedah dengan nama yang sama boleh berbeza;
(4) Jika jenis Jika dua kaedah dengan nama yang sama ditakrifkan, apabila memanggil kaedah pada jenis ini, pengkompil akan memilih kaedah yang sesuai berdasarkan jenis penerima.
type Person struct{ Name string Age int } func (p *Person) Print(){ fmt.Printf("Name: %s, Age: %d", p.Name, p.Age) } func (p *Person) Print(){ fmt.Printf("Name: %s, Age: %d", p.Name, p.Age) }Pengkompil akan melaporkan ralat berikut:
redeclared method Person.PrintKerana kami tentukan Dua kaedah dengan nama yang sama dengan senarai parameter yang sama. RingkasanDalam artikel ini, kami memperkenalkan kaedah dengan nama yang sama di Golang. Kaedah dengan nama yang sama ialah ciri sintaks yang menarik yang membolehkan kami mentakrifkan nama kaedah yang sama pada jenis penerima yang berbeza. Terdapat beberapa batasan yang perlu diberi perhatian apabila menggunakan kaedah dengan nama yang sama, tetapi menggunakannya dengan bijak boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda.
Atas ialah kandungan terperinci Ketahui lebih lanjut tentang definisi dan penggunaan kaedah Golang dengan nama yang sama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!