Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmScBl 264 of 350 menu
◀ ▶

Блок и область видимости в Go

Фигурные скобки без if и без цикла тоже задают свою область. Имя из короткого объявления внутри такого блока видно только между открывающей и закрывающей скобкой. После скобки обращаться к нему нельзя.

Объявим число внутри простого блока и выведем его там же:

{ slot := 3 fmt.Println(slot) }

На экране 3. Следующая команда уже вне области slot:

{ slot := 3 } fmt.Println(slot)

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

base := 1 { fmt.Println(base) { inner := 2 fmt.Println(inner) } }

Дан следующий код:

{ key := "x" } fmt.Println(key)

Скажите, соберется ли программа.

Дана переменная:

outer := 4

Внутри блока без условия выведите outer. Скажите, почему это допустимо.

Дан следующий код:

{ { v := 1 } fmt.Println(v) }

Скажите, соберется ли программа.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить