Nicholas Husin, on behalf of the Go team
19 August 2026
Today the Go team is pleased to release Go 1.27. You can find its binary archives and installers on the download page.
Go 1.27 brings major enhancements across the language, toolchain, runtime, and standard library. Below are some of the key highlights.
Language changes
Go 1.27 introduces three notable updates to the language specification.
First, generic methods are now supported. For example, see math/rand/v2.Rand :
// Prior to Go 1.27, a separate method on Rand had to be added for each type // (unsigned integer methods omitted for brevity). func (r *Rand) Int32N(n int32) int32 func (r *Rand) Int64N(n int64) int64 func (r *Rand) IntN(n int) int // Go 1.27 adds a new generic method that works for all integer types. func (r *Rand) N[Int intType](n Int) Int
Second, a key in a struct literal may now be any valid field selector for the struct type, allowing fields in nested or embedded structs to be initialized directly:
type Habitat struct { Burrow string } type Gopher struct { Name string Habitat // Embedded struct. } // Go 1.27 allows using Burrow as a key directly. g := Gopher{ Name: "Gopher", Burrow: "Burrow #42", }
... continue reading