Введение в области видимости в Go
Область видимости - это кусок программы, где имя можно прочитать. Пока команда стоит внутри такого куска, компилятор находит переменную по имени. За пределами области обращение к тому же имени уже не сработает: там это имя либо не объявлено, либо относится к другой переменной.
Области вкладываются друг в друга. Внутри функции можно объявить имя, которое снаружи функции не видно. Внутри блока с фигурными скобками можно ввести еще одно имя, которое исчезнет после закрывающей скобки. Так программа держит короткие имена локально и не мешает им друг другу в соседних фрагментах.
Одинаковое написание имени в двух областях
не всегда означает одну переменную. В другой
функции можно снова назвать переменную n,
и это будет отдельное значение. Во вложенном
блоке внутреннее имя с тем же текстом может
на время закрыть внешнее. После выхода из
блока снова читается внешнее имя со старым
смыслом, если его значение не меняли снаружи.
В этом разделе разберем локальные имена в функциях, блоки, цикл и имя в начале файла. На задачах проверим, где имя видно, где программа не соберется и какое значение останется после вложенного блока.