← Go コース
61. slices と maps — 標準の汎用パッケージ(Go 1.21+)
Go 1.21 で、ジェネリクスを活用した slices パッケージと maps パッケージが標準ライブラリに加わりました。これまで自分で書きがちだった定番処理が、型安全な関数として用意されています。slices には Contains・Index・Sort・Max・Reverse などがあります。
maps パッケージには、マップのキー一覧やキー・値のペアを取り出す関数があります(Go 1.23 以降はイテレータを返す maps.Keys / maps.Values が標準です)。マップの反復順は保証されないため、安定した出力が欲しいときは取り出したキーを slices.Sort で並べ替えるのが定番です。
下の例では slices.Sort でスライスを並べ替え、slices.Contains で存在確認し、slices.Max で最大値を求めます。いずれも結果が決まるので出力は安定します。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
Go