Golang ialah bahasa pengaturcaraan yang sangat popular dengan banyak ciri dan fungsi termaju. Salah satu ciri utama ialah pengaturcaraan berorientasikan objek, yang boleh menggunakan struktur untuk melaksanakan konsep yang serupa dengan kelas dalam berorientasikan objek. Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaksanakan kelas.
Di Golang, struktur ialah jenis data tersuai yang digunakan untuk menyimpan satu set medan data yang berkaitan. Ia boleh mengandungi medan pelbagai jenis, seperti rentetan, integer, terapung, dsb.
Sintaks untuk mentakrifkan struktur adalah seperti berikut:
type StructName struct { field1 type1 field2 type2 ... }
di mana, StructName
ialah nama struktur, field1
, field2
, dsb. ialah medan nama dalam struktur, type1
, type2
, dsb. ialah jenis data medan yang sepadan.
Sebagai contoh, berikut ialah struktur ringkas Person
, yang mengandungi dua medan: nama dan umur:
type Person struct { Name string Age int }
Selepas mentakrifkan struktur, kita boleh menggunakannya untuk mencipta Contoh .
p := Person{ Name: "张三", Age: 18, }
Di Golang, kaedah ialah fungsi yang merupakan penerima penunjuk atau penerima nilai. Kaedah mempunyai sintaks yang serupa dengan fungsi biasa, tetapi boleh dikaitkan dengan struktur, dengan itu melaksanakan konsep yang serupa dengan kaedah kelas dalam kaedah berorientasikan objek. Kaedah boleh mengakses medan dalam struktur.
Sintaks untuk mentakrifkan kaedah adalah seperti berikut:
func (receiver ReceiverType) MethodName(args...) return_type { // 方法实现 }
di mana, receiver
ialah penerima kaedah, ReceiverType
boleh menjadi penunjuk atau jenis nilai, MethodName
ialah nama kaedah, args
ialah parameter, return_type
ialah jenis nilai pulangan.
Contoh berikut menunjukkan cara mentakrifkan kaedah Person
untuk struktur SayHello
supaya ia boleh bertanya khabar.
func (p Person) SayHello() { fmt.Printf("您好,我叫%s,今年%d岁。\n", p.Name, p.Age) }
Kaedah ini menerima penerima jenis Person
dan mengeluarkan nama dan umur contoh Person
.
Warisan ialah konsep penting dalam pengaturcaraan berorientasikan objek. Ia membenarkan kelas untuk "mewarisi" sifat dan kaedah kelas lain dan melanjutkannya berdasarkannya.
Warisan bukan ciri yang disokong secara langsung di Golang. Walau bagaimanapun, kita boleh menggunakan komposisi untuk mencapai kesan yang serupa dengan warisan.
Secara konkrit, kita boleh mentakrifkan struktur yang mengandungi penunjuk kepada struktur lain dan melaksanakan pewarisan dengan melanjutkan kaedahnya.
Sebagai contoh, kita boleh mentakrifkan struktur Student
yang mengandungi medan jenis Person
dan medan lain yang mewakili kelas.
type Student struct { person *Person class string }
Kemudian, kita boleh melanjutkan kaedah struktur Student
dalam struktur Person
. Dalam pelaksanaan kaedah, kita boleh menggunakan medan person
untuk mengakses medan struktur Person
.
func (s Student) Study() { fmt.Printf("%s在%s班级学习...\n", s.person.Name, s.class) } func (s Student) SayHello() { s.person.SayHello() fmt.Printf("我在%s班级上学。\n", s.class) }
Di bawah ialah contoh lengkap yang menunjukkan cara melaksanakan kelas menggunakan Golang.
package main import "fmt" type Person struct { Name string Age int } func (p Person) SayHello() { fmt.Printf("您好,我叫%s,今年%d岁。\n", p.Name, p.Age) } type Student struct { person *Person class string } func (s Student) Study() { fmt.Printf("%s在%s班级学习...\n", s.person.Name, s.class) } func (s Student) SayHello() { s.person.SayHello() fmt.Printf("我在%s班级上学。\n", s.class) } func main() { p := Person{ Name: "张三", Age: 18, } s := Student{ person: &p, class: "高中一年级", } s.SayHello() s.Study() }
Laksanakan kod di atas, hasil output ialah:
您好,我叫张三,今年18岁。 我在高中一年级班级上学。
Golang menyediakan ciri yang serupa dengan pengaturcaraan berorientasikan objek , Konsep kelas boleh dilaksanakan menggunakan struktur dan kaedah. Walaupun Golang tidak menyokong warisan secara langsung, kita boleh menggunakan komposisi untuk mencapai kesan yang serupa dengan warisan. Melalui ciri ini, kita boleh menulis kod dengan gaya pengaturcaraan berorientasikan objek di Golang.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kelas menggunakan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!