Middle
Go-догу жабуу эмне?
sobes.tech AI
AIден жооп
Goда жабуу — бул функция, ал өзү айланасынан келген маанилерди "эсте" калтырган функция, ал тургай сырттагы функция аяктагандан кийин да. Бул сырттан өзгөрмөлөрдү кармап, алардын ичинде колдонууга мүмкүндүк берет.
// Чыгаркы функция
func makeCounter() func() int {
count := 0 // Кармалган өзгөрмө
// Ички функция (жабуу)
return func() int {
count++ // countту кармап, өзгөртүп жатабыз
return count
}
}
// Колдонуу мисалы
func main() {
counter1 := makeCounter() // Биринчи жабууну түзүү
fmt.Println(counter1()) // Чыгуу: 1
fmt.Println(counter1()) // Чыгуу: 2
counter2 := makeCounter() // Экинчи жабууну түзүү (өзүнүн count менен)
fmt.Println(counter2()) // Чыгуу: 1
}