マップ順序付け出力を実装する

キーと値のペアの順序を逆にすることができる Python の辞書とは異なり、golang のマップは順序付けされていないことがわかっています。それでは、マップの順序付けされた出力を手動で実装してみましょう。原理は実際には非常に簡単です。

package main

import (
	"fmt"
	"sort"
)

func main() {
	map1 := make(map[int]string, 5)
	map1[1] = "www.topgoer.com"
	map1[2] = "rpc.topgoer.com"
	map1[5] = "ceshi"
	map1[3] = "xiaohong"
	map1[4] = "xiaohuang"
	sli := []int{}
	for k, _ := range map1 {
		sli = append(sli, k)
	}
	sort.Ints(sli)
	for i := 0; i < len(map1); i++ {
		fmt.Println(map1[sli[i]])
	}
}

上記のコードは、マップを定義して初期化し、空のスライス sli を定義し、マップを走査し、マップのキーをスライス sli に格納し、sli をソートして順序付けされたキーを取得します。スライススライス. キーを取り出すだけです。

ここにちょっとしたトリックがあります:

ここでは、マップを巡回してキーのみを取り出していますが、値は取り出していません。これは、キーがわかれば、マップに従って値を直接取得できるため、効率が向上するためです。少し! 

 ところで、スライスを定義する 3 つの方法を確認してみましょう。

 

おすすめ

転載: blog.csdn.net/qq_55621259/article/details/127875113