Cara Mengindeks Peta yang Mengandungi Susunan Objek dalam Go: Menyelesaikan Ralat "Antara Muka Jenis {} Tidak Menyokong Pengindeksan"
Pengindeksan peta yang mengandungi tatasusunan objek dalam Go boleh membawa kepada ralat "antara muka jenis {} tidak menyokong pengindeksan." Ralat ini berlaku kerana Go tidak mengetahui jenis unsur tatasusunan yang diharapkan, yang diwakili oleh jenis antara muka.
Untuk mengatasi ralat ini dan mendapatkan semula elemen yang dikehendaki, anda perlu menukar antara muka secara eksplisit{} nilai kepada jenis khusus yang anda jangkakan.
Pertimbangkan peta berikut:
Map := make(map[string]interface{}) Map["Users"] = Users_Array Map["Hosts"] = Hosts_Array
Untuk mengakses elemen pertama Tatasusunan "Pengguna", gunakan kod berikut:
Users_Array := Map["Users"].([]User) firstUser := Users_Array[0]
Begitu juga, untuk tatasusunan "Hos":
Hosts_Array := Map["Hosts"].([]Host) firstHost := Hosts_Array[0]
Penukaran ini kepada jenis tertentu memastikan operasi pengindeksan boleh dilakukan dengan jayanya. Kegagalan untuk melaksanakan penukaran akan mengakibatkan ralat "antara muka jenis {} tidak menyokong pengindeksan".
Berikut ialah contoh yang menunjukkan proses penukaran dan pengindeksan:
package main import "fmt" type Host struct { Name string } type User struct { Name string } func main() { Map := make(map[string]interface{}) Map["hosts"] = []Host{{"test.com"}, {"test2.com"}} Map["users"] = []User{{"john"}, {"jane"}} hm := Map["hosts"].([]Host) fmt.Println(hm[0]) um := Map["users"].([]User) fmt.Println(um[0]) }
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan 'antara muka jenis {} Tidak Menyokong Pengindeksan' dalam Peta Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!