Вопрос: Как работают generics в Go (type parameters) на базовом уровне?

Go Junior Без компании
Вопрос: Как работают generics в Go (type parameters) на базовом уровне?
Ответы
Generics позволяют писать функции/типы с параметрами типов. Ограничения задаются через интерфейсы (constraints). Пример: max для ordered типов ```go package main import "fmt" type Ordered interface { ~int | ~int64 | ~float64 | ~string } func Max[T Ordered](a, b T) T { if a > b { return a } return b } func main() { fmt.Println(Max(10, 20)) fmt.Println(Max("a", "b")) } ``` ~int означает "тип с базовым типом int" (например, кастомный type MyInt int).