TGViewer
Библиотека Go-разработчика | Golang Библиотека Go-разработчика | Golang @goproglib · 24.1K subscribers
Post #7145 4.32K
🔄 Развернуть слайс красиво

В Go есть паттерн для перебора слайса в обратном порядке. Выглядит он так:
for i := len(s) - 1; i >= 0; i-- {
use(s[i])
}


Работает, но заставляет читателя каждый раз вручную разворачивать логику у себя в голове.

Go 1.23 добавил slices.Backward из пакета slices. Теперь тот же цикл можно написать так:
for _, v := range slices.Backward(s) {
use(v)
}


Если в теле цикла нужен не только элемент, но и его позиция, оба значения остаются доступны:
for i, v := range slices.Backward(s) {
fmt.Println(i, v)
}


Переписывать старые циклы вручную никто не хочет. Для этого есть анализатор slicesbackward из пакета golang.org/x/tools. Так что меняем все такие паттерны на новые методы:
go vet -vettool=$(which modernize) ./...


📍 Навигация: Вакансии • Задачи • Собесы

🐸 Библиотека Go-разработчика

#GoToProduction
  • 👍 15
  • ❤ 4
  • 😁 2
More from @goproglib
  1. Sep 30, 2026🧑‍💻 Эмулятор AWS-сервисов Kumo — это небольшой инструмент на Go для локальной имитации A…
  2. Sep 29, 2026👨‍💻 Библиотека для написания LSP-серверов Написать свой Language Server с нуля на Go сло…
  3. Sep 28, 2026🤔 Вопрос с собеседования по Go Что выведет программа? ❤️ — 1 true / 0 false 🔥 — 1 true /…
  4. Sep 28, 2026👩‍💻 Что на самом деле происходит внутри Go map? После Go 1.24 обычный map внутри работае…
  5. Sep 26, 2026🔥 В Go 1.27 появился portable SIMD До этого SIMD-оптимизации в Go требовали архитектурног…
  6. Sep 25, 2026🤡🤡 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика #GoGiggle
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 →