|
|||||||
Области видимости в Golang
Время создания: 12.11.2020 23:14
Автор: br0ke
Текстовые метки: go, golang, scope, visibility, shadow, shadowing
Раздел: Информационные технологии - Golang
Запись: and-semakin/mytetra_data/master/base/16052048586nxg13jid6/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
В Go область видимости определяется лексическими блоками, т.е. частями кода, которые заключены в фигурные скобки. Пример самого простого лексического блока: func ExampleScope1() { var v int = 1 { /* * Здесь переменная из внешнего лексического блока затеняется * переменной внутреннего лексического блока */ var v string = "2" fmt.Println(v) } fmt.Println(v) /* * В примере мы объявили в отдельных лексических блоках переменные с одним именем и * разными типами, а затем напечатали значения этих переменных. */ // Output: // 2 // 1 } Внутри вложенных лексических блоков можно определять имена, которые уже существуют во внешних блоках. В таком случае более внутренние имена "затеняют" внешние и они становятся недоступны до конца блока. Имена, объявленные внутри блоков, недоступны извне. Циклы, условия, конструкции switch и select также могут создавать по два лексических блока:
Также неявные лексические блоки создаются для:
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|