Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: scope, block scope, local variable, export

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

Этот вопрос проверяет знание областей видимости локальных переменных в Go.

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

Нет, переменные, объявленные внутри { ... } (в теле функции, цикла или if), видны только в этом блоке. Публичность через заглавную букву влияет только на экспорт между пакетами, но не расширяет область видимости локальной переменной.

 

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

Локальная область видимости:

func f() {
  	if true {
    		x := 1
  	}
  	// x недоступна здесь
}

Публичность относится к пакетам:

  • X := 1 внутри функции всё равно локальная.

Пакетная область видимости:

  • Переменные на уровне пакета видны всему пакету, но не вложенным блокам вне пакета.

Вывод:

Для передачи значений используйте параметры функции или возвращаемые значения.

  • Аватар

    Golang Guru

    Maxim Lukyanov

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

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Golang

    Golang

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

#scope

#block scope

#local variable

#export

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

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