これは古い質問かもしれませんが、私はstackoverflowで何も見つかりませんでした。移動しても、マップ上の反復順序は再現性があるとは限りません。したがって、スライスにキーを保持し、そのスライスをソートすることをお勧めします。次に、そのスライスを繰り返してマップから値を取得します(キーで構成されるスライスはソートされているため、再現可能な順序になります)。したがって、これは、スライスをソートする必要があることを意味し、スライス上の反復は再現可能な順序を与えません。しかし、私は遊び場で以下のコードを試してみましたが、私はいつも繰り返しが維持されていることを知っていました。そして地図の反復の場合、なぜスライスをソートする必要がありますか?スライス反復順序が入っています
func main() {
var mySlice = make([]string, 0)
mySlice = append(mySlice, "abcd")
mySlice = append(mySlice, "efgh")
mySlice = append(mySlice, "ijkl")
mySlice = append(mySlice, "mnop")
mySlice = append(mySlice, "qrst")
mySlice = append(mySlice, "uvwxyz")
for _, val := range mySlice {
fmt.Println(val)
}
fmt.Println(strings.Join(mySlice, "|"))
}
出力:
abcd
efgh
ijkl
mnop
qrst
uvwxyz
abcd|efgh|ijkl|mnop|qrst|uvwxyz
スライスとマップを混在させています。 – Volker