iT邦幫忙

2

蠻可愛的golang #32 Map的應用之依序取值

人們比較喜歡依序列出,一個常見的課題就是排序.
我們來看看一個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種可樂喝法

1 則留言

0
總裁
iT邦好手 1 級 ‧ 2014-08-13 16:07:58

已經開始make了....偷笑

開心

我要留言

立即登入留言