Пакеты 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 — скорее всего, она там уже есть.