人們比較喜歡依序列出,一個常見的課題就是排序.
我們來看看一個Map怎樣依照Key的順序進行存取.
順帶介紹Map宣告的第三種方法.
// hello37
package main
import (
"fmt"
"sort"
)
func main() {
eagle_books := make(map[int]string, 5)
// ^
// 宣告此Map的capacity
eagle_books[389] = "48種PHP不能說的秘密"
eagle_books[567] = "101種可樂喝法"
eagle_books[438] = "揭開MySQL的內幕"
eagle_books[543] = "鷹爪功實戰"
eagle_books[111] = "鷹爪十八破"
// 依序取出的方法
// 先建立一個Array
keys := make([]int, len(eagle_books))
// 將Map的key放入Array中
i := 0
for k, _ := range eagle_books {
keys[i] = k
i++
}
// 排序Array
sort.Ints(keys)
// 透過Array, 依序將Map的值取出
for _, k := range keys {
fmt.Printf("Key: %d => %s\n", k, eagle_books[k])
}
}
執行結果:
λ ./hello37
Key: 111 => 鷹爪十八破
Key: 389 => 48種PHP不能說的秘密
Key: 438 => 揭開MySQL的內幕
Key: 543 => 鷹爪功實戰
Key: 567 => 101種可樂喝法