The Go Blog
Go 1.18 ベータ 1 が公開されました。ジェネリクスを搭載
ダウンロードページにアクセスしてGo 1.18 ベータ 1 を入手できるようになりました。
Go 1.18 の正式リリースはまだ数か月先です。これは Go 1.18 の最初のプレビューリリースであり、皆様に試していただき、問題を報告していただくことを目的としています。Go 1.18 ベータ 1 は、Google の Go チーム全体と世界中の Go コントリビューターによる膨大な量の作業の成果であり、皆様のご意見を伺うことを楽しみにしています。
Go 1.18 ベータ 1 は、Go の新しい型パラメーターを使ったジェネリックコードのサポートを含む最初のプレビューリリースです。ジェネリクスは Go 1 のリリース以来、Go にとって最も重要な変更であり、これまでに行った単一の言語変更としては間違いなく最大です。大規模な新機能では、新規ユーザーが新しいバグを発見することはよくあることであり、ジェネリクスも例外ではないと考えています。適切な注意を払って使用してください。また、特定の種類の再帰的なジェネリック型など、一部の微妙なケースは将来のリリースに延期されています。とはいえ、早期採用者の中には非常に満足している方もいらっしゃることを知っています。ジェネリクスに特に適していると思われるユースケースがある場合は、ぜひ試してみてください。ジェネリクスの始め方に関する簡単なチュートリアルを公開しており、先週の GopherCon では講演を行いました。Go playground の Go 開発ブランチモードでも試すことができます。
Go 1.18 ベータ 1 では、プログラムをクラッシュさせたり無効な結果を返したりする入力データを自動的に見つけるファジングベースのテストを作成するための組み込みサポートが追加されています。
Go 1.18 ベータ 1 では、新しい「Go ワークスペースモード」が追加されました。これにより、複数の Go モジュールを同時に操作できるようになり、大規模なプロジェクトにとって重要なユースケースとなります。
Go 1.18 ベータ 1 には、拡張された go version -m コマンドが含まれており、コンパイラフラグなどのビルドの詳細が記録されるようになりました。プログラムはdebug.ReadBuildInfoを使用して自身のビルドの詳細を照会でき、新しいdebug/buildinfoパッケージを使用して他のバイナリからビルドの詳細を読み取ることができます。この機能は、Go バイナリのソフトウェア部品表 (SBOM) を生成する必要があるあらゆるツールの基盤となることを意図しています。
今年初め、Go 1.17 では、x86-64 システムでの Go コードを高速化するために、新しいレジスタベースの呼び出し規約が追加されました。Go 1.18 ベータ 1 では、この機能が ARM64 および PPC64 に拡張され、最大 20% の高速化を実現しています。
このベータリリースに貢献してくださった皆様、そして特にジェネリクスを実現するために何年も tirelessly 努力してきた Google のチームに感謝いたします。長い道のりでしたが、結果に大変満足しており、皆様にも気に入っていただければ幸いです。
詳細については、Go 1.18 のドラフトリリースノートをご覧ください。
いつものことですが、特にベータリリースでは、何か問題に気づいた場合は、問題を報告してください。
ベータ版のテストをお楽しみいただければ幸いです。皆様にとって2021年の残りの日々が安らかであることを願っています。良い休暇を!
次の記事: 1.18 の新しいチュートリアル 2つ
前の記事: Go の12年間
ブログインデックス