пятница, 15 июля 2011 г.

Scope Область видимости (область действия, область определения)

Область действия относится к радиусу действия или видимости переменных. Различные типы переменных имеют различные правила области действия. Главным образом мы будем говорить о двух типах: глобальные и локальные переменные.



Глобальные области действия и глобальные переменные

Мы начнем с области действия, которая употребляется реже всего, но вы должны быть осведомлены о том, что: глобальная область действия означает область действия, которая распространяется на всю программу. Глобальная область действия используется глобальными переменными. Глобальные переменные отличаются тем, что начинаются со значка доллара ($). Они доступны везде в вашей программе. Глобальные переменные никогда не выходят за область действия. Однако глобальные переменные используются очень редко опытными программистами (кроме, вероятно, нескольких встроенных экземпляров).

Встроенные глобальные переменные


Интерпретаор Ruby начинается с довольно большого количества глобальных переменных, которые уже инициализированы. Эти переменные хранят информацию, которая может потенциально использована где-либо в вашей программе. Например, глобальная переменная $0 содержит имя исполняемого файла Ruby. Глобальная $: (знак доллара с последующим двоеточием) содержит директории, которые делают пути поиска Интерпретаор Ruby начинается с довольно большого количества глобальных переменных, которые уже инициализированы. Эти переменные хранят информацию, которая может потенциально использована где-либо в вашей программе. Например, глобальная переменная $0 содержит имя исполняемого файла Ruby. Глобальная $: (знак доллара с последующим двоеточием) содержит директории, которые делают пути поиска Ruby, когда загружается внешний файл.(?) $$ содержит процесс id процесса Ruby. А здесь больше.

Локальная область действия


Заметка: Не беспокойтесь, если сейчас не понимаете это.
Вы можете сказать, посмотрев на программу Ruby, где локальные области действия начинаются и заканчиваются, основываясь на нескольких правилах:
 - Верхний уровень (вне всех блоков определения) имеет свою локальную область действия.
 - Каждый классовый или модульный блок определения (class, module) имеет свою локальную область действия, даже включая классовые/модульные блоки определения.
 - Каждый метод определения (def) имеет свою локальную область действия.

Комментариев нет:

Отправить комментарий