網頁

2022/2/12

Golang 依放入順序遍歷map的值

Go的map不保證順序,所以要依放入順序遍歷map的值可透過有序的slice來記錄順序。


下面範例利用keys slice紀錄放入map時的key順序,則遍歷map時則改遍歷有順序的keys依序以儲存的key來取得map中的值。

main.go

package main

import "fmt"

func main() {
    m := make(map[int]string)
    var keys []int

    k1 := 1
    m[k1] = "john"
    keys = append(keys, k1)

    k2 := 2
    m[k2] = "mary"
    keys = append(keys, k2)

    k3 := 5
    m[k3] = "tony"
    keys = append(keys, k3)

    for _, k := range keys {
        fmt.Printf("key=%d, value=%s\n", k, m[k])
    }
}

執行後印出以下。

key=1 value=john
key=2 value=mary
key=5 value=tony


沒有留言:

張貼留言