Go でマップから値のスライスを取得する
マップが与えられた場合、その値のスライスを効率的に取得する方法がいくつかあります。 。これらのアプローチを調べてみましょう:
ループの使用:
提供された元のコードは、ループを使用してマップから値を取得し、値をスライスに割り当てます。この方法は一般的に使用されますが、面倒な場合があり、スライス サイズを手動で管理する必要があります。
make:
を使用すると、Go の make 関数を使用してスライスを作成できます。特定の長さと容量。 make を利用して、マップの長さに等しい容量のスライスを割り当て、スライスに十分なスペースがあることを確認できます。
m := make(map[int]string) m[1] = "a" m[2] = "b" m[3] = "c" m[4] = "d" v := make([]string, 0, len(m)) // Initialize slice with capacity equal to map length for _, value := range m { v = append(v, value) }
スライスの容量をマップの長さに初期化することで、再割り当てを回避してパフォーマンスを最適化します。スライスに値を追加するとき。
を使用するappend:
append 関数は、スライスに値を追加する便利な方法を提供します。必要に応じてスライスを自動的に割り当てたり拡張したりして、スライスに十分な容量があることを確認します。
m := make(map[int]string) m[1] = "a" m[2] = "b" m[3] = "c" m[4] = "d" v := []string{} // Initialize empty slice for _, value := range m { v = append(v, value) }
この例では、空のスライスから開始し、append を使用して値を繰り返し追加します。
これらのアプローチは、Go のマップから値のスライスを取得する効率的な方法を提供し、特定の状況に基づいて最適な方法を選択できるようにします。が必要です。
以上がGo マップから値のスライスを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。