Go: есть ли private у переменных внутри функции?

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

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

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

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

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

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

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

Если вы объявили переменную внутри функции, она видна во всей функции после точки объявления.

Пример:

func example() {
    x := 10 // переменная x видна внутри функции example
    if true {
        fmt.Println(x) // доступ к x возможен
    }
}

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

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

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

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

Подробнее