米Googleは、プログラミング言語Goの最新バージョンとなる「Go 1.22」をリリースしている。
Go 1.22は、前バージョンであるGo 1.21のリリースから6か月後にリリースされた。これまでと同様にGo 1.xとの互換性が保たれており、ほぼすべてのGo言語で書かれたプログラムが変更なしでコンパイル、実行できる。
Go 1.22では、forループに変更が加えられ、これまではforループで宣言された変数が1回作成され、反復ごとに更新されていたが、今後は偶発的な共有バグを避けるためにループの各反復で新たに変数が生成されるようになった。また、forループの範囲が整数になるように指定できる。
さらに、ワークスペース内のコマンドがワークスペースの依存関係を含むvendorディレクトリを使えるようになったほか、go getがレガシーGOPATHモードのモジュールの外部ではサポートされなくなった。また、go test -coverが独自のテストファイルを持たない対象パッケージのカバレッジ概要を出力するようになっている。
ほかにも、traceツールのWeb UIにおけるいくつかの問題が解消され、vetツールの動作がGo 1.22のforループにおける変数の新たなセマンティクスに合わせて変更されるとともに、ランタイムが型ベースのガベージコレクションメタデータを各ヒープオブジェクト近くに保持するようになり、GoによるプログラムのCPUパフォーマンスが1〜3%向上するなど、数多くの機能強化・改善が実施された。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です