TGViewer
Go for Devs Go for Devs @go_for_devs · 852 subscribers
Post #59 783
🔥 Coming Soon в Go 1.26: нормальные указатели на значения

Вы точно сталкивались с тем, что указатель на структуру сделать легко, а вот на простое значение вроде int — уже приходится извращаться.


a := 77
b := &a
fmt.Println(*b) // 77


Это работает, но выглядит, мягко говоря, странно.

В Go 1.26 завезут следующее:


a := new(42)
fmt.Println(*a) // 42


То же самое будет работать и для строк, слайсов, даже для результата функции:


s := "hello"
ps := new(s)
fmt.Println(*ps) // hello

type Point struct { X, Y int }
pp := new(Point{X: 5, Y: 7})
fmt.Println(*pp) // {5 7}

f := func() string { return "GoLang" }
pf := new(f())
fmt.Println(*pf) // GoLang


На просторах интернета уже можно найти следующее:

“RIP всем самописным PointerTo[T any](in T) *T — теперь в стандартной библиотеке есть всё необходимое. Маленькое и незаметное изменение, но с огромным профитом.”


Единственный нюанс: new() всегда аллоцирует новое место и кладёт туда копию значения. То есть new(*p) сделает копию того, на что указывает p, а не новый указатель на тот же объект.

👍 Давай еще новостей про грядущий релиз
🔥 Фича топ
  • 👍 26
  • 🔥 12
  • 🤔 4
  • ❤ 3
More from @go_for_devs
  1. Sep 30, 2026Тут больше не будет новостей, статей и постов про Go. Go-разработчику сейчас важнее не син…
  2. Apr 16, 2026⚡️ Anthropic выпустили Claude Opus 4.7 Cursor зафиксировал рост с 58% до 70% на своём бенч…
  3. Feb 11, 2026🥳 Состоялся релиз Go 1.26 В релиз вошли несколько заметных изменений: 1. Функция new тепе…
  4. Jan 29, 2026Post #116
  5. Jan 22, 2026Помните, осенью мы писали про запуск опроса Go Survey 2025. Так вот, вчера команда Go опуб…
  6. Jan 21, 2026Философский подход к бэкенду
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →