Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mengindeks ke dalam antara muka{} Peta dalam Go?

Bagaimana untuk Mengindeks ke dalam antara muka{} Peta dalam Go?

Patricia Arquette
Lepaskan: 2024-12-18 11:50:12
asal
521 orang telah melayarinya

How to Index into an interface{} Map in Go?

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

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

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

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!

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