Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyelesaikan Ralat 'antara muka jenis {} tidak menyokong pengindeksan' dalam Go?

Bagaimana untuk Menyelesaikan Ralat 'antara muka jenis {} tidak menyokong pengindeksan' dalam Go?

Susan Sarandon
Lepaskan: 2024-12-16 04:27:10
asal
975 orang telah melayarinya

How to Resolve the

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

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

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!

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