Cara Mengindeks Peta Antara Muka dalam Go: Menyelesaikan "antara muka jenis {} tidak menyokong pengindeksan"
Dalam Go, cuba mengindeks peta antara muka{} dengan kunci tertentu boleh membawa kepada ralat "antara muka jenis {} tidak menyokong pengindeksan." Ini timbul apabila cuba mengakses elemen daripada peta di mana nilai disimpan sebagai antara muka dan jenis khusus nilai ini tidak diketahui.
Salah satu cara untuk mengatasi ralat ini ialah dengan menaip secara eksplisit nilai yang dikembalikan daripada peta menggunakan jenis kepingan yang anda jangkakan nilainya. Sebagai contoh, pertimbangkan coretan kod berikut di mana peta yang dipanggil TopologyMap mengandungi pemetaan daripada rentetan kepada tatasusunan objek:
Map := make(map[string]interface{}) Map["Users"] = Users_Array Map["Hosts"] = Hosts_Array
Untuk mendapatkan semula elemen daripada peta ini, anda boleh menggunakan sintaks berikut, tetapi ia akan menghasilkan ralat "antara muka jenis {} tidak menyokong pengindeksan":
Map["Users"][0]
Untuk menyelesaikannya, tukar antara muka secara eksplisit nilai kepada jenis yang dikehendaki menggunakan penegasan jenis. Berikut ialah contoh yang menunjukkan cara melakukan ini untuk peta rentetan dan kepingan hos:
import ( "fmt" ) type Host struct { Name string } func main() { Map := make(map[string]interface{}) Map["hosts"] = []Host{Host{"test.com"}, Host{"test2.com"}} hm := Map["hosts"].([]Host) fmt.Println(hm[0]) }
Dalam contoh ini, kami secara eksplisit menaip-menukar nilai yang disimpan di bawah kekunci "hos" kepada sekeping Hos objek, membolehkan anda mengakses elemen hos individu.
Dengan menggunakan pendekatan ini, anda boleh mengindeks peta antara muka{} dengan berkesan dan mendapatkan semula yang khusus nilai yang anda perlukan, walaupun jenisnya tidak diketahui pada masa penyusunan.
Atas ialah kandungan terperinci Bagaimana untuk Mengindeks ke dalam antara muka{} Peta dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!