Go 1.18 がリリースされました!

Go 1.18 is released! by The Go Team

本日、Goチームは Go 1.18 をリリースできることを大変嬉しく思います。ダウンロードページ から入手できます。

Go 1.18 は新機能やパフォーマンスの改善、そしてこれまでで最大の言語仕様の変更を含む、非常に大規模なリリースです。 Go 1.18 の一部の設計は、私たちが最初にGoをリリースした10年以上前にまでさかのぼると言っても過言ではありません。

ジェネリクス

Go 1.18 では、パラメータ化された型を使ったジェネリックなコードのサポートを新たに導入します。 ジェネリクスのサポートは、Goにこれまでで最も多く寄せられてきた要望であり、 今日多くのユーザーが必要としている水準のサポートを提供できることを誇りに思います。 より複雑なジェネリクスのユースケースに対する追加のサポートは、今後のリリースで提供される予定です。 ジェネリクスのチュートリアル を使ってこの新機能に慣れ親しみ、 ジェネリクスを使ってコードを最適化し簡潔にする最良の方法を今すぐ探ってみることをお勧めします。 Go 1.18 でのジェネリクスの利用について詳しくは、リリースノート を参照してください。

ファジング

Go 1.18 により、Goはファジングが標準ツールチェインに完全に統合された最初のメジャー言語となりました。 ジェネリクスと同様に、ファジングも長い間設計が続けられてきた機能であり、 今回のリリースでGoのエコシステムに提供できることを嬉しく思います。 この新機能を使い始めるために、ぜひファジングのチュートリアル をご覧ください。

ワークスペース

Goモジュールはほぼ全面的に採用されており、Goユーザーは毎年実施している調査で非常に高い満足度を報告してくれています。 2021年のユーザー調査では、モジュールに関してユーザーが挙げた最も多い課題は、複数のモジュールにまたがって作業することでした。 Go 1.18 では、新しいGoワークスペースモード によってこの課題に対応しました。 これにより、複数のモジュールにまたがる作業が簡単になります。

20%のパフォーマンス向上

Apple M1、ARM64、そしてPowerPC64のユーザーの皆さん、喜んでください! Go 1.18 では、Go 1.17 で導入されたレジスタベースのABI呼び出し規約をこれらのアーキテクチャに拡張したことで、 CPUのパフォーマンスが最大20%向上しています。 今回のリリースがいかに大規模かを強調するために付け加えると、この20%のパフォーマンス向上は、 見出しとして4番目に重要な項目にすぎません!

1.18に含まれるすべての内容についての詳細な説明は、リリースノート を参照してください。

Go 1.18 はGoコミュニティ全体にとって大きなマイルストーンです。 バグを報告してくれた方、変更を送ってくれた方、チュートリアルを書いてくれた方、 その他あらゆる形でGo 1.18の実現に力を貸してくれたすべてのGoユーザーに感謝します。 皆さんの助けがなければ実現できませんでした。ありがとうございます。

Go 1.18をお楽しみください!

By The Go Team