Можно ли получить доступ к переменной, объявленной внутри функции, из вне ее области видимости?

В Go переменная, объявленная внутри функции, имеет локальную область видимости и недоступна вне этой функции напрямую.

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

Что ответить на собеседовании

В Go переменная, объявленная внутри функции, имеет локальную область видимости и недоступна вне этой функции напрямую.

Подробный разбор

Ответ с пояснениями

В Go переменная, объявленная внутри функции, имеет локальную область видимости и недоступна вне этой функции напрямую.

Однако, можно получить доступ к значению переменной снаружи через замыкания (closures) или возвращая значение из функции.

Пример с замыканием:

func counter() func() int {
    count := 0
    return func() int {
        count++
        return count
    }
}

func main() {
    c := counter()
    fmt.Println(c()) // 1
    fmt.Println(c()) // 2
}

Здесь переменная count объявлена внутри функции counter, но доступна через возвращаемую функцию.

Прямого доступа к локальной переменной из вне функции без таких приёмов нет.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее