Mengatasi Ralat: "antara muka jenis {} tidak menyokong pengindeksan" dalam Go
Apabila bekerja dengan peta yang mengandungi pelbagai antara muka{} nilai, anda mungkin menghadapi ralat semasa cuba mengindeksnya, khususnya "antara muka jenis {} tidak menyokong pengindeksan." Ini berlaku kerana jenis antara muka{} tidak menyokong pengindeksan.
Untuk berjaya mengindeks dan mengakses elemen daripada peta ini, adalah perlu untuk menukar nilai antara muka{} secara eksplisit kepada jenis yang dijangkakan, seperti kepingan . Penukaran ini boleh dicapai dengan menyatakan jenis sasaran dalam kurungan segi empat sama.
Sebagai contoh, pertimbangkan kod Go berikut:
package main import "fmt" type Host struct { Name string } func main() { Map := make(map[string]interface{}) Map["hosts"] = []Host{Host{"test.com"}, Host{"test2.com"}} // Convert interface{} to a slice of Host hm := Map["hosts"].([]Host) fmt.Println(hm[0]) }
Dalam contoh ini, peta "Peta" diisi dengan sepotong struktur Hos. Untuk mengakses elemen pertama hirisan, anda perlu menukar nilai antara muka{} dalam "Peta['hos']" untuk menaip []Hos. Ini dilakukan dengan ungkapan:
hm := Map["hosts"].([]Host)
Dengan penukaran, anda boleh mengakses elemen kepingan seperti mana-mana kepingan Go standard. Dalam kes ini, output akan menjadi "test.com" kerana ia adalah elemen pertama dalam kepingan hos.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'antara muka jenis {} tidak menyokong pengindeksan' dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!