Rumah > Artikel > pembangunan bahagian belakang > Tatasusunan struktur yang diwarisi dalam Go Lang
Go Lang ialah bahasa pengaturcaraan moden yang telah muncul dengan cepat dalam dunia pengaturcaraan kerana kesederhanaan dan kecekapannya. Dalam Go Lang, struktur ialah jenis data biasa yang boleh digunakan untuk menyusun dan menyimpan set data yang berkaitan. Walau bagaimanapun, dalam beberapa kes, kita mungkin perlu menentukan tatasusunan yang mengandungi berbilang struktur, beroperasi padanya dan mewarisi daripadanya. Artikel ini akan memperkenalkan cara membuat dan menggunakan tatasusunan struktur yang diwarisi dalam Go Lang untuk menangani struktur data yang kompleks dan keperluan pengaturcaraan dengan lebih baik.
Baru-baru ini saya mula membina permainan catur dalam golang dan salah satu isu yang saya hadapi ialah menyimpan watak yang berbeza (iaitu bidak, kesatria, raja) dalam satu susunan.
package main import "fmt" type character struct { currposition [2]int } type knight struct { c character } func (k knight) move() { fmt.println("moving kinght...") } type king struct { c character } func (k king) move() { fmt.println("moving king...") }
Dalam contoh di atas, bolehkah kita meletakkan ksatria dan raja dalam susunan yang sama kerana mereka mewarisi daripada kelas asas yang sama?
Suka
characters := []character{Knight{}, King{}}
Gunakan Antara Muka Asas sebagai polimorfisme.
type character interface { move() pos() [2]int } type knight struct { pos [2]int } func (k *knight) move() { fmt.println("moving kinght...") } func (k *knight) pos() [2]int { return k.pos } type king struct { pos [2]int } func (k *king) move() { fmt.println("moving king...") } func (k *king) pos() [2]int { return k.pos }
Pernyataan berikut disusun bersama perubahan ini:
characters := []character{&Knight{}, &King{}}
Selain itu, anda mungkin memerlukan penerima penunjuk seperti dalam contoh ini.
Atas ialah kandungan terperinci Tatasusunan struktur yang diwarisi dalam Go Lang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!