概要
- Go 1.27 のリリース発表
- 言語仕様、ツールチェーン、ランタイム、標準ライブラリの主な強化点
- 代表的な新機能の紹介
- パフォーマンス改善や新プロファイル追加
- 新規パッケージ・機能の概要
Go 1.27 リリース概要
- Go 1.27 のバイナリアーカイブとインストーラーは 公式ダウンロードページ で公開
- 言語、ツールチェーン、ランタイム、標準ライブラリの 大幅な機能強化
- 代表的な新機能や改善点のまとめ
言語仕様の変更
-
ジェネリックメソッド の正式サポート
- 例: math/rand/v2.Rand における全整数型対応のメソッド追加
- 旧来は型ごとに個別メソッド実装が必要
- 新しいジェネリックメソッドで コードの重複削減
-
構造体リテラルのフィールド指定 の柔軟化
- ネストや埋め込み構造体のフィールドも 直接初期化可能
- 例:
Gopher{ Name: "Gopher", Burrow: "Burrow #42" }のような記述
-
関数型推論の一般化
- すべての代入コンテキストで ジェネリック関数の型引数自動推論
- 合成リテラル、型変換、チャネル送信時も明示的な型指定不要
ツールチェーンの改善
- go fix の新モダナイザー追加
atomictypes,embedlit,slicesbackward,unsafefuncsの対応
- go doc で
package@version形式のクエリサポート- 例:
go doc example.com/pkg@v1.2.3
- 例:
- go mod tidy で複数のrequireブロックを自動統合
- 直接・間接依存の2ブロック構成に標準化
パフォーマンス・ランタイムの強化
- 小オブジェクト( 80バイト未満)向けのサイズ特化メモリアロケーション
- 割当コスト最大 30%削減、割当多用プログラムで 約1%性能向上
- goroutineleak プロファイルの一般提供
- 永久ブロックしたゴルーチンの自動検出機能
標準ライブラリの追加・強化
- encoding/json/v2 で高レベルJSON処理と厳格なデフォルト
- 低レベルストリーミング用の encoding/json/jsontext も追加
- 既存 encoding/json はv2実装を利用し、 高速化と互換性維持
- crypto/mldsa でポスト量子暗号ML-DSA署名スキーム(FIPS 204)実装
- crypto/x509 や crypto/tls に統合
- uuid パッケージでUUIDの生成・解析をネイティブサポート
- simd および simd/archsimd で実験的なSIMDサポート
- net/http/httptest に NewTestServer 追加
- testing/synctest と組み合わせて使えるインメモリ偽ネットワーク
今後の情報と協力者への感謝
- Go 1.27リリースノート に詳細情報を掲載
- 今後数週間で関連トピックのブログ記事を順次公開予定
- コード提供、バグ報告、実験機能の試用、リリース候補のテストに貢献した全てのユーザーに感謝
- 問題発見時は issue報告 のお願い
- Go 1.27 の利用促進