Sobes.tech
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
}