Go でマップから値のスライスを効率的に取得する方法
Go では、スライスを取得する必要があることがよくあります。マップからの値の。提示されたコードは、スライスの作成、マップの反復処理、およびスライスへの各値の手動割り当てを含む 1 つの可能なアプローチを示しています。この方法は機能しますが、より良い代替手段を検討する価値はあります。
組み込み機能または Go パッケージ
質問の想定に反して、組み込み機能はありません。 Go 言語またはその標準パッケージ内の機能で、ファイルから値のスライスを直接取得できます。 map.
付録アプローチ
手動割り当て方法の代わりに、append 関数を使用してスライスを動的に構築することを検討してください。このアプローチは、よりシンプルで簡潔なソリューションを提供します。
m := make(map[int]string) m[1] = "a" m[2] = "b" m[3] = "c" m[4] = "d" v := make([]string, 0, len(m)) // initialize with zero length and a capacity matching the map length for _, value := range m { v = append(v, value) }
append を使用すると、個々のインデックスを指定する必要がなくなり、コードが読みやすくなり、エラーが発生しにくくなります。
最適化
追加アプローチのパフォーマンスをさらに最適化するために、容量を割り当てることができます。マップ内の要素の数と一致するスライスの場合。これにより、追加操作中に Go がメモリを再割り当てする必要がなくなり、効率が向上します。
以上がGo でマップから値のスライスを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。