- 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