Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menjamin Output yang Dipesan Apabila Mengulang Peta Atas Go?

Bagaimana untuk Menjamin Output yang Dipesan Apabila Mengulang Peta Atas Go?

Patricia Arquette
Lepaskan: 2024-11-28 01:16:15
asal
670 orang telah melayarinya

How to Guarantee Ordered Output When Iterating Over Go Maps?

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

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

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

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!

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