[解決済み] マップを含む値を順番に収集する
2022-11-14 16:04:31
質問
トピック関数によって返されたマップをコード内で反復処理するとき、キーが順番に表示されません。
どうすれば、キーが順番になるようにする/キーが順番になり、値が対応するようにマップを並べ替えることができますか?
以下は のコードです。 .
どのように解決するのですか?
この 囲碁ブログ 囲碁マップの活用 には素晴らしい説明があります。
<ブロッククオート範囲ループでマップを反復する場合、反復順序は指定されません。 指定されないため、ある反復から次の反復まで同じであることは保証されません。 であることは保証されません。Go 1 以降、ランタイムはマップの反復順序をランダム化するようになりました。 プログラマは以前の実装の安定した反復順序に頼ったためです。 というのも、プログラマは以前の実装の安定した反復順序に依存していたからです。安定した反復順序が必要な場合は、以下を行う必要があります。 その順序を指定する別のデータ構造を維持する必要があります。
以下は私が修正したサンプルコードです。 http://play.golang.org/p/dvqcGPYy3-
package main
import (
"fmt"
"sort"
)
func main() {
// To create a map as input
m := make(map[int]string)
m[1] = "a"
m[2] = "c"
m[0] = "b"
// To store the keys in slice in sorted order
keys := make([]int, len(m))
i := 0
for k := range m {
keys[i] = k
i++
}
sort.Ints(keys)
// To perform the opertion you want
for _, k := range keys {
fmt.Println("Key:", k, "Value:", m[k])
}
}
出力します。
Key: 0 Value: b
Key: 1 Value: a
Key: 2 Value: c
関連
-
[解決済み] Goでマップにキーが含まれているかどうかを確認するには?
-
[解決済み] Java Hashmap。値からキーを取得する方法は?
-
[解決済み] Goでオブジェクトの型を見つけるには?
-
[解決済み] パラメータと戻り値におけるポインタと値の比較
-
[解決済み】地図上のキーを削除する
-
[解決済み] intをint64に変換するには?
-
[解決済み] interface{}をint型に変換する
-
[解決済み] あるプログラムの依存ファイルをすべて取得する方法
-
[解決済み] ローカルファイルからio.Readerを作成する
-
[解決済み] golangにおけるバックティック(``)とダブルクォート("")の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] intをint64に変換するには?
-
[解決済み] ゴルーチンの停止方法
-
[解決済み] Goを使って大きなファイルを効率よくダウンロードするにはどうしたらいいですか?
-
[解決済み] ログをファイルに書き出す方法
-
[解決済み] GoのToString()関数
-
[解決済み] Goでスライスを逆に反復処理する方法はありますか?
-
[解決済み] Goで関数の名前を取得するには?
-
[解決済み] あるプログラムの依存ファイルをすべて取得する方法
-
[解決済み] bytes.Buffer does not implement io.Writer" というエラーメッセージが表示される。
-
[解決済み] golangにおけるバックティック(``)とダブルクォート("")の違いは何ですか?