Область видимости (PascalABC.NET)

Материал из Информационная безопасностя
Перейти к навигации Перейти к поиску

Объекты, описанные в некотором блоке, компилятор «видит» только в нем и во всех вложенных в него блоках. В частности, это означает, что все объекты определенные внутри подпрограмм, вызывающая программа не видит. Это позволяет разрабатывать подпрограммы, не задумываясь о возможном совпадении имен, которое могло бы породить проблемы.

PascalABC.NET имеет одну интересную особенность. Если внутри программной единицы описать переменную, а ниже по тексту использовать внутриблочную переменную с таким же именем, компилятор зафиксирует ошибку. Но если описать переменную после блока, это не считается ошибкой. Параметр цикла также считается внутриблочной переменной.

Pascal-overload.png

Может возникнуть вопрос, как вызывающая программа видит подпрограмму, если подпрограмма описана вне вызывающей программы. Ответ очень прост: описание подпрограмм является частью кода программы, именуемом разделом подпрограмм. А сам раздел подпрограмм помещается текстуально выше кода основной программы.