Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya harus menggunakan jenis mapinterface {} dalam golang

Bagaimanakah saya harus menggunakan jenis mapinterface {} dalam golang

王林
王林ke hadapan
2024-02-05 23:06:121102semak imbas

我应该如何在golang中使用类型mapinterface {}

Kandungan soalan

Saya cuba mendapatkan semula data daripada api. Apabila saya mendapat data daripada api:

result, _ := s.getcases() // get cases via api
fmt.println(reflect.typeof(result.records[0]["cases"]))

Ia menunjukkan jenis hasil. rekod[0]["kes"] ialah peta[rentetan]antara muka {}

Tetapi, jelas saya tidak boleh menggunakan ini secara langsung sebagai peta. Daripada:

fmt.println(reflect.typeof(result.records[0]["cases"]["id"]))

Ini akan mengakibatkan ralat pengkompil:

invalid operation: cannot index result.Records[0]["Cases"] (map index
expression of type interface{})

Boleh saya tahu cara menggunakan golang jenis ini?


Jawapan betul


Nilai adalah jenis interface{},并且根据反射的输出,该接口中有一个 map[string]interface{} nilai. Oleh itu, anda perlu menggunakan penegasan jenis untuk mendapatkan nilai sebenar yang disimpan dalam antara muka:

fmt.Println(reflect.TypeOf(result.Records[0]["Cases"].(map[string]interface{})["Id"]))

Atas ialah kandungan terperinci Bagaimanakah saya harus menggunakan jenis mapinterface {} dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam