Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Анонимные функции
Функция может вообще не иметь названия. В этом случае ссылку на анонимную функцию сохраняют в переменной:
var <Переменная>[ func([<Типы параметров>])[ <Тип результата>]] =
func([<Название параметра 1> <Тип>
[, ..., <Название параметра N> <Тип>]])[ <Тип результата>] {
<Тело функции>
[return[ <Возвращаемое значение>]]
}
Пример создания анонимной функции и ее вызова:
// Присваиваем ссылку на анонимную функцию
var f func(int, int) int = func(x int, y int) int {
return x + y
}
// Вызываем анонимную функцию через переменную f
fmt.Println(f(40, 20)) // 60
Анонимная функция становится видимой только после определения. Если вызов функции поместить перед определением, то будет выведено сообщение об ошибке.
Ссылку на вложенную функцию можно вернуть в качестве значения в операторе return
. Чтобы вызвать вложенную функцию, круглые скобки указываются два раза:
// Присваиваем ссылку на анонимную функцию
var f func() func() = func() func() {
return func() { // Возвращаем ссылку на вложенную функцию
fmt.Println("Это вложенная функция")
}
}
f()() // Вызываем вложенную функцию через переменную f
Анонимную функцию удобно использовать, когда в качестве значения параметра ожидается передача ссылки на функцию (листинг 10.14).
Листинг 10.14. Передача в функцию анонимной функции
package main
import "fmt"
func main() {
fmt.Println(test(40, 20, func(x, y int) int {
return x + y
})) // 60
fmt.Println(test(40, 20, func(x, y int) int {
return x - y
})) // 20
}
func test(x, y int, f func(int, int) int) int {
return f(x, y)
}
Реквизиты
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов