Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpGnUn 92 of 280 menu
◀ ▶

Объединение типов в Go

Интерфейс ограничения может перечислять конкретные типы через вертикальную черту. Такое объединение говорит: параметр типа должен быть ровно одним из перечисленных имен, а не любым значением под широким ограничением.

Перечень пишут внутри интерфейса, а функцию или структуру помечают этим интерфейсом в квадратных скобках. Сами типы через черту в скобках функции напрямую не ставят: сначала дают имя ограничению.

Сложим два числа из узкого набора типов. Печатаются 5 и 11:

package main import "fmt" type Number interface { int | int64 | float64 } func Add[T Number](a, b T) T { return a + b } func main() { fmt.Println(Add(2, 3)) fmt.Println(Add(int64(10), int64(1))) }

Объявите ограничение с int и float64, функцию Double, которая удваивает значение, и выведите результат для 2.5.

Дан следующий код:

type Signed interface { int | int64 } func Abs[T Signed](n T) T { if n < 0 { return -n } return n }

Скажите, подойдет ли тип float64 для параметра T.

Даны числа:

a := 4 b := 6

Через Add из примера сложите a и b и выведите сумму.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить