S: Menukar Antara Muka{} kepada Peta dan Melelaran Di Atasnya
Dalam percubaan untuk mencipta fungsi generik yang boleh menerima pelbagai struktur data, termasuk struct, kepingan struct dan peta dengan kunci rentetan dan nilai struct, anda menghadapi ralat semasa cuba melelaran pada peta. Merenung antara muka mendedahkan bahawa ia sememangnya peta, tetapi mengakses elemennya melalui lelaran julat mengakibatkan ralat.
J: Menggunakan Suis Jenis atau Nilai.MapKeys
Terdapat dua pendekatan untuk menyelesaikan isu ini:
Jenis Suis:
Untuk contoh:
switch in := in.(type) { case map[string]*Book: for key, value := range in { fmt.Printf("Key: %s, Value: %v\n", key, value) } default: // Handle other cases as needed. }
Nilai.MapKeys:
Contohnya:
v := reflect.ValueOf(in) keys := v.MapKeys() for _, key := range keys { value := v.MapIndex(key) fmt.Printf("Key: %v, Value: %v\n", key.Interface(), value.Interface()) }
Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Peta yang Dicerminkan daripada Antara Muka{}?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!