Как написать generic функцию?

Middle
290 просмотров
AFK Offer AI

Добавляешь type parameters в квадратных скобках после имени: func Filter[T any](s []T, pred func(T) bool) []T. Внутри T используется как обычный тип. Вызов: Filter(nums, isPositive) — компилятор выведет T = int. Или явно: Filter[string](words, isLong). Constraint определяет возможности: any — минимум, comparable — можно сравнивать, свой интерфейс — можно вызывать методы. Если нужно несколько type params: func Map[T any, U any](s []T, f func(T) U) []U.

Следующий вопрос

Как работает gRPC interceptor?