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

Локальное имя в Go

Имя, объявленное внутри функции, снаружи этой функции не видно. Короткое объявление и обычное объявление с var в теле функции создают локальную переменную только для этого блока функции. Другая функция в том же файле не может обратиться к такому имени.

Внутри функции имя работает как обычно:

package main import "fmt" func showLabel() { label := "local" fmt.Println(label) } func main() { showLabel() }

На экране "local". Переменная label живет только внутри showLabel.

Если попытаться вывести то же имя из main, сборка не пройдет:

package main import "fmt" func showLabel() { label := "local" fmt.Println(label) } func main() { fmt.Println(label) }

То же правило для имени после внутреннего блока в одной функции: объявили внутри скобок, снаружи скобок имя пропадает.

if true { inner := 4 fmt.Println(inner) } fmt.Println(inner)

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

package main import "fmt" func save() { code := 7 fmt.Println(code) } func main() { save() fmt.Println(code) }

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

Скажите, в какой функции видно имя из короткого объявления внутри другой функции того же файла.

Дан фрагмент:

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

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

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