← ко всем постам
2026-05-26 · #tooling

Пакеты slices и maps: меньше велосипедов

Годами каждый проект тащил свой Contains, IndexOf, Keys. С приходом дженериков в стандартную библиотеку добавили пакеты slices и maps — теперь эти утилиты общие.

import "slices"

nums := []int{3, 1, 2}
slices.Sort(nums)              // [1 2 3]
ok := slices.Contains(nums, 2) // true
i  := slices.Index(nums, 3)    // 2

Аналогично maps.Keys и maps.Values возвращают ключи и значения. Мелочь, но она убирает десятки строк рутинного кода из каждого проекта.

Мораль: перед тем как писать утилиту для слайсов, загляните в пакет slices — скорее всего, она там уже есть.