Untuk kaedah kelas dan kaedah objek dalam bahasa Go, kaedah tersebut berbeza dalam lokasi definisi, kaedah panggilan, keperluan instantiasi, penggunaan biasa dan kebolehcapaian. Kaedah kelas ditakrifkan pada jenis struktur dan dipanggil terus menggunakan nama jenis struktur tanpa instantiasi Ia digunakan untuk pemula, pengesahan dan menyediakan fungsi awam. Kaedah objek ditakrifkan pada objek dan mesti digunakan sebelum ia boleh dipanggil. Kaedah ini digunakan untuk mengendalikan keadaan objek dan menyediakan fungsi pembantu peribadi, yang hanya boleh diakses dari dalam pakej.
Pengenalan
Dalam bahasa Go, kaedah boleh ditakrifkan pada peringkat jenis (kaedah kelas) atau peringkat objek (kaedah objek). Kedua-dua jenis kaedah ini mempunyai tingkah laku dan penggunaan yang berbeza. Artikel ini akan menganalisis perbezaan antara kedua-dua jenis kaedah ini dan menggambarkan penggunaannya dengan contoh praktikal.
Kaedah kelas
Contoh:
type Person struct { Name string Age int } // 定义Person类型的类方法 func (p *Person) GetNameAndAge() string { return fmt.Sprintf("%s, %d", p.Name, p.Age) } func main() { // 直接使用类方法 nameAndAge := Person{Name: "John", Age: 30}.GetNameAndAge() fmt.Println(nameAndAge) }
Kaedah objek
Contoh struktur
Kaedah panggilan
Nama jenis struktur.Nama kaedahKeperluan instan | Tiada | |
---|---|---|
Penggunaan umum | penggunaan biasa | |
Kebolehcapaian | Boleh diakses di dalam dan di luar pakej | |
Kes praktikal | ||
Kaedah kelas: | ||
Sahkan input pengguna | Mulakan contoh baharu | Sediakan fungsi pembantu awam |
Perbandingan objek Persamaan antara
Mengubah suai keadaan dalaman objekAtas ialah kandungan terperinci Analisis perbandingan kaedah kelas dan kaedah objek dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!