Go 1.27正式リリース、ジェネリックメソッドなど追加
原題: Go 1.27
なぜ重要か
ジェネリックメソッドの導入とランタイム効率化により、Go言語のエコシステム成熟と大規模サービス開発への適用範囲が拡大する。
Goチームは2026年8月19日、Go 1.27を正式リリースした。言語仕様にジェネリックメソッドのサポートや関数型推論の汎用化など3つの主要変更を導入し、小オブジェクト(80バイト未満)のメモリ割り当てコストを最大30%削減するなどランタイム性能も向上した。
Goチームは2026年8月19日、Go 1.27を正式リリースした。バイナリアーカイブとインストーラーは公式ダウンロードページから入手可能となっている。
【言語仕様の変更】
今回のリリースでは言語仕様に3つの重要な更新が加えられた。第1に、ジェネリックメソッドがサポートされた。従来はmath/rand/v2のRandのように型ごとに個別のメソッドを定義する必要があったが、Go 1.27ではすべての整数型に対応する単一のジェネリックメソッドを定義できる。第2に、構造体リテラルのキーとして、埋め込み構造体のフィールドを直接指定できるようになった。これにより入れ子や埋め込み構造体のフィールドを直接初期化することが可能となる。第3に、関数型推論がすべての代入コンテキストに汎用化され、複合リテラル・型変換・チャネル送信においてジェネリック関数の型引数を省略できるようになった。
【ツールの改善】
go fixコマンドに、atomictypes・embedlit・slicesbackward・unsafefuncsの4つの新しいモダナイザーが追加された。go docコマンドはgo doc example.com/pkg@v1.2.3のようなパッケージバージョン指定クエリをサポートした。go mod tidyはgo.mod内の複数のrequireブロックを自動的に直接依存・間接依存の2ブロック構造に整理するようになった。
【パフォーマンスとランタイム】
サイズ特化型のメモリアロケーションにより、80バイト未満の小オブジェクトの割り当てコストが最大30%削減され、割り当て処理が多いプログラムでは全体的に約1%の性能向上が見込まれる。また、runtime/pprofのgoroutineleakプロファイルが正式提供となり、永続的にブロックされたゴルーチンを自動検出できるようになった。
【標準ライブラリ】
encoding/json/v2が追加されるなど、標準ライブラリにも複数の機能追加が行われた。