Junior — Middle
Обяснете механизма на функциониране на затварянето в програмирането.
sobes.tech AI
Отговор от AI
В програмирането, затварянето (closure) е функция, която "помни" и може да използва променливи от външната си област, дори ако тази външна функция вече е приключила изпълнението си.
В Go, затварянията често се създават с помощта на анонимни функции, които имат достъп до променливи от околния контекст. Това позволява запазване на състоянието между извикванията на функцията.
Пример:
package main
import "fmt"
func брояч() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
c := брояч()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}
Тук, функцията брояч връща затваряне, което увеличава и връща стойността на count. Променливата count се запазва в затварянето между извикванията.