Несколько параметров типа в Go
В одной функции может быть несколько параметров типа. Их перечисляют через запятую в тех же квадратных скобках после имени, у каждого свое ограничение.
Имена не связаны друг с другом: первый параметр может стать строкой, второй числом, если сигнатура это позволяет. Так удобно описывать пары разнородных значений или преобразование из одного типа в другой при общих ограничениях.
Вернем два значения разных параметров типа.
На экране строка "ok" и число 1
в обратном порядке:
package main
import "fmt"
func Swap[A, B any](a A, b B) (B, A) {
return b, a
}
func main() {
x, y := Swap(1, "ok")
fmt.Println(x, y)
}
Объявите MakePair с параметрами типа
A и B, верните оба аргумента
в том же порядке, передайте целое
7 и строку "go" и выведите
результат.
Дан следующий код:
func Both[A, B any](a A, b B) (A, B) {
return a, b
}
Скажите, сколько независимых имен типа у этой функции.
Даны числа:
p := 2
q := 3.5
Через Swap с двумя параметрами
типа поменяйте местами p и
q в две переменные и выведите их.