Ответ
Замыкание (closure) — это функция, которая запоминает переменные из окружающего её лексического контекста, даже если этот контекст уже завершил выполнение. В Go замыкания часто используются с анонимными функциями.
Пример:
func adder() func(int) int {
sum := 0
return func(x int) int {
sum += x
return sum
}
}
func main() {
a := adder()
fmt.Println(a(1)) // 1
fmt.Println(a(2)) // 3
fmt.Println(a(3)) // 6
}
Здесь adder возвращает замыкание, которое сохраняет доступ к переменной sum между вызовами. Каждый вызов a() модифицирует одно и то же состояние sum.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶