Ограничение задаёт, какие типы можно подставлять в параметр типа. Встроенные: any (любой), comparable (сравнимые). Интерфейс как ограничение: func F[T io.Reader](r T) - только типы с методом Read. Пакет golang.org/x/exp/constraints: Ordered, Integer и др. Синтаксис: func F[T Constraint](...) .