Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membetulkan 'antara muka jenis {} Tidak Menyokong Pengindeksan' dalam Peta Go?

Bagaimana untuk Membetulkan 'antara muka jenis {} Tidak Menyokong Pengindeksan' dalam Peta Go?

Mary-Kate Olsen
Lepaskan: 2024-12-25 10:18:17
asal
681 orang telah melayarinya

How to Fix

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
Salin selepas log masuk

Untuk mengakses elemen pertama Tatasusunan "Pengguna", gunakan kod berikut:

Users_Array := Map["Users"].([]User)
firstUser := Users_Array[0]
Salin selepas log masuk

Begitu juga, untuk tatasusunan "Hos":

Hosts_Array := Map["Hosts"].([]Host)
firstHost := Hosts_Array[0]
Salin selepas log masuk

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])
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan