Editor PHP Apple hari ini akan memperkenalkan kepada anda kaedah struktur dalam Golang Kaedah ini boleh menerima pelbagai jenis parameter. Golang ialah bahasa pengaturcaraan taip statik sumber terbuka yang menyokong gaya pengaturcaraan berorientasikan objek dan menyediakan struktur sebagai jenis data. Kaedah struktur ialah fungsi khas yang boleh mengendalikan dan mengubah suai struktur. Tidak seperti bahasa lain, kaedah struktur Golang boleh menerima pelbagai jenis parameter, yang membawa lebih fleksibiliti dan kemudahan kepada pembangun. Mari kita lihat lebih dekat ciri ini.
Kaedah saya adalah seperti berikut:
func (t *worker) updateinfo(n structtype1, node structtype2)
Namun, sekarang saya perlu menggunakan api ini untuk mengendalikan structtype1 dan structtype3. Ini bermakna n boleh menjadi structtype3.
Bagaimana saya boleh mengubah suai kaedah untuk mencapai ini dan bukannya menulis kaedah lain seperti di bawah dan mengulangi kod yang sama?
func (t *Worker) updateInfo(n structType3, node structType2)
Sunting: Semua struktur ini adalah struktur tersuai saya sendiri
Dalam kes ini, anda boleh menggunakan generik.
Sebagai contoh, anggap kaedah structtype1
和 structtype2
有一个名为 print
.
type structtype1 struct {} func(st1 structtype1) print() { fmt.println("calling print function of structtype1") } type structtype3 struct {} func(st3 structtype3) print() { fmt.println("calling print function of structtype2") }
Kami boleh menentukan pengisytiharan jenis antara muka seperti yang ditunjukkan di bawah.
type struct13 interface { print() structtype1 | structtype3 // type union }
Anda kemudiannya perlu mengubah suai fungsi worker
结构体和 updateinfo
函数。 (注:struct13
中的 print
dengan parameter jenis untuk tujuan demonstrasi. )
type worker[t struct13] struct{} func (t *worker[t]) updateinfo(n t, node structtype2) { n.print() }
Kita boleh menggunakan pelaksanaan di atas seperti yang ditunjukkan di bawah.
st1 := structType1{} st2 := structType2{} st3 := structType3{} w1 := Worker[structType1]{} w1.updateInfo(st1,st2) w2 := Worker[structType3]{} w2.updateInfo(st3,st2)
Atas ialah kandungan terperinci Kaedah struktur Golang menerima pelbagai jenis parameter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!