Дженерики появились ещё в Go 1.18, но метод до сих пор не может объявить собственные type parameters.
Поэтому вместо:
func (s Set[T]) Map[U comparable](f func(T) U) Set[U]
приходится писать отдельную generic-функцию:
func MapSet[T, U comparable](s Set[T], f func(T) U) Set[U]
В Go 1.27 это ограничение снимают: собственные type parameters можно будет объявлять прямо у метода.
Но есть граница: generic methods не работают как методы интерфейсов и не могут их реализовывать.
📌 Go 1.27 пока не вышел в stable — изменение уже есть в draft release notes, релиз ожидается в августе.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoLive