comparable constraint?comparable - встроенное ограничение для типов, которые можно сравнивать через == и !=. Это базовые типы, указатели, массивы, структуры из сравниваемых полей. Слайсы, map и функции не comparable.
func Index[T comparable](s []T, x T) int {
for i, v := range s {
if v == x { return i }
}
return -1
}
Без comparable нельзя было бы писать v == x для произвольного T.