Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: closure, function, scope, state, callback

Что такое замыкания функций в контексте Go?

Этот вопрос проверяет понимание концепции замыканий, которые позволяют функции обращаться к переменным, находящимся за пределами их области видимости, и использовать их.

Короткий ответ

Замыкание функции — это функция, которая захватывает и использует переменные из окружающего контекста. Эти функции могут сохранять состояние между вызовами.

Длинный ответ

Замыкание — это функция, которая не только выполняет свою основную задачу, но и запоминает значения переменных, находящихся в области видимости, в которой она была определена. Это позволяет функции работать с изменяющимися значениями даже после завершения ее первоначального вызова.

Пример:

package main

import "fmt"

func adder() func(int) int {
    	sum := 0
    	return func(x int) int {
        	sum += x
        	return sum
    }
}

func main() {
    	pos, neg := adder(), adder()
    	fmt.Println(pos(5))  // 5
    	fmt.Println(neg(-2)) // -2
    	fmt.Println(pos(3))  // 8
}

Здесь функция adder возвращает замыкание, которое сохраняет состояние переменной sum. Каждый вызов замыкания обновляет и использует это состояние.

В каких случаях использовать:

  • Когда требуется сохранять состояние между вызовами функции, например, в счетчиках или генераторах.

  • Для создания функции с параметрами, зависящими от внешних значений, но сохраняющими свою логику.

  • В ситуациях, когда нужно создавать функцию, которая будет выполнять действия с переменными, изменяющимися с каждым вызовом.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    7

Навыки

  • Golang

    Golang

Ключевые слова

#closure

#function

#scope

#state

#callback

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.