Peta dalam Go: Mengekalkan Keteraturan dan Mengakses Elemen
Dalam Go, peta menyediakan cara yang dinamik dan cekap untuk menyimpan pasangan nilai kunci. Walau bagaimanapun, tidak seperti tatasusunan atau kepingan, peta tidak disusun secara semula jadi. Ini boleh membawa kepada output yang kelihatan tidak teratur apabila melelaran padanya.
Coretan kod berikut menunjukkan gelagat ini:
package main import ( "fmt" ) type monthsType struct { no int text string } var months = map[int]string{ 1:"January", 2:"Fabruary", 3:"March", 4:"April", 5:"May", 6:"June", 7:"July", 8:"August", 9:"September", 10:"October", 11:"Novenber", 12:"December", } func main(){ for no, month := range months { fmt.Print(no) fmt.Println("-" + month) } }
Apabila anda menjalankan kod ini, anda akan melihat bahawa peta tidak mencetak mengikut susunan kekunci (nombor 1 hingga 12). Sebaliknya, ia mencetak dalam susunan yang nampaknya rawak.
Penyelesaian: Mengawal Perintah dalam Peta
Untuk mendapatkan peta untuk dicetak dalam susunan tertentu, terdapat beberapa pilihan anda boleh mempertimbangkan:
1. Gunakan Tatasusunan:
Jika susunan adalah kritikal, anda boleh menggunakan tatasusunan untuk menyimpan elemen secara berurutan. Tatasusunan menyediakan struktur data tersusun di mana anda boleh mengakses elemen terus menggunakan indeksnya.
2. Kekunci Isih:
Jika anda perlu mengekalkan peta sebagai struktur data, anda boleh mendapatkan senarai kekunci yang diisih menggunakan fungsi isihan. Ints, lelaran ke atas kekunci yang diisih dan dapatkan nilai yang sepadan daripada peta .
Contoh Kod:
package main import ( "fmt" "sort" ) type monthsType struct { no int text string } var months = map[int]string{ 1:"January", 2:"Fabruary", 3:"March", 4:"April", 5:"May", 6:"June", 7:"July", 8:"August", 9:"September", 10:"October", 11:"Novenber", 12:"December", } func main(){ var sortedKeys []int for key := range months { sortedKeys = append(sortedKeys, key) } sort.Ints(sortedKeys) fmt.Println("Printing in order:") for _, key := range sortedKeys { fmt.Printf("%d-%s", key, months[key]) } }
Dalam kod ini, tatasusunan sortedKeys dicipta untuk menyimpan kunci peta dalam susunan menaik. Kami kemudian mengulangi kekunci yang diisih dan mengakses nilai yang sepadan daripada peta. Ini menghasilkan output berikut:
Printing in order: 1-January2-Fabruary3-March4-April5-May6-June7-July8-August9-September10-October11-Novenber12-December
Atas ialah kandungan terperinci Bagaimana untuk Menjamin Output yang Dipesan Apabila Mengulang Peta Atas Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!