Тип функции в Go
Тип функции записывают как func,
затем типы параметров в круглых скобках
и тип результата. Такой тип подходит
и для литерала, и для обычной функции
с тем же списком аргументов:
package main
import "fmt"
func main() {
var doubleNum func(int) int = func(x int) int {
return x * 2
}
fmt.Println(doubleNum(4)) // выведет 8
}
Для двух параметров схема та же - в типе перечисляют аргументы и итоговый тип результата:
package main
import "fmt"
func main() {
var sum func(int, int) int = func(a int, b int) int {
return a + b
}
fmt.Println(sum(1, 2)) // выведет 3
}
Объявите переменную с типом
func(string) string и присвойте ей
литерал со строковым параметром, который
возвращает эту строку с восклицательным
знаком в конце. Выведите результат для
"garden".
Объявите переменную с типом
func(int, int) bool. Литерал принимает
два целых и возвращает true, если
оба аргумента больше 0.
Выведите результат для 2 и 3
и для -1 и 5.