Go開発チームは3月15日(現地時間)、プログラミング言語「Go」の最新版「Go 1.18」をリリースしました(公式ブログ)。最新版の実行ファイルやソースファイルは公式サイトからダウンロード可能です。
Go 1.18 は新機能、パフォーマンスの向上、言語機能の過去最大の変更を含む大規模なリリースと位置づけられています。
Go 1.18 では、まずパラメータ化された型を使用するジェネリックコードのサポートが導入されました。ジェネリックのサポートはGo言語で最もリクエストが多かった機能で、今後のリリースでも、より複雑なジェネリックの使用例に対応するため、追加サポートを提供する予定です。ジェネリックを使ってコードを最適化、簡素化する方法を学習するためには、ジェネリクス・チュートリアルを参考にすることができます。機能の詳細はリリースノートでも説明されています。
また、長い間設計されてきたファジングが標準ツールチェーンに完全に統合されています。ファジングは、ランダムなデータをテストに対して実行し、脆弱性やクラッシュの原因となる入力を見つけるというもので、ファジングで見つかる脆弱性の例としては、SQLインジェクション、バッファオーバーフロー、サービス拒否、クロスサイトスクリプティング攻撃などがあります。ファジングチュートリアルも公開されています。
その他、複数のモジュールにまたがって作業するためのワークスペースモードの導入や、Apple M1、ARM64、PowerPC64アーキテクチャにおけるCPUパフォーマンスの最大20%の向上も行われています。
変更点の詳細はリリースノートで確認可能です。