Вышла Go 1.27-
generic methodsДо:
func (r *Rand) Int32N(n int32) int32
func (r *Rand) Int64N(n int64) int64
func (r *Rand) IntN(n int) int
После:
func (r *Rand) N[Int intType](n Int) Int
-
Ещё при инициализации структуры теперь можно сразу указывать поля вложенной структуры.До:
g := Gopher{
Name: "Gopher",
Habitat: Habitat{
Burrow: "Burrow #42",
},
}После:
g := Gopher{
Name: "Gopher",
Burrow: "Burrow #42",
}-
go fix,
новые фичи1)
atomictypes заменяет старые функции из
sync/atomic на типизированные атомики:
atomic.AddInt32(&x, 1)
// превращается в
x.Add(1)
2)
embedlit обновляет инициализацию вложенных структур под новый синтаксис из примера выше.
3)
slicesbackward заменяет ручной обратный цикл:
for i := len(s) - 1; i >= 0; i-- {
use(s[i])
}на:
for _, v := range slices.Backward(s) {
use(v)
}4)
unsafefuncs заменяет ручную арифметику указателей на
unsafe.Add.
https://go.dev/doc/go1.27