Spec-Zone .ru
спецификации, руководства, описания, API
|
Переменные могут быть объявлены на уровне сценария (переменная сценария) в class (переменная экземпляра), или в пределах блоков (локальная переменная)
Переменные сценария являются переменными, которые объявляются на верхнем уровне сценария (в противоположность внутренней части определение class или блок). Переменные сценария видимы всюду по всему сценарию - задействованное выражение доступа не необходимо.
var thing = "Thing"; class A { function getThing() : String { thing } }
Без добавленного доступа modifer, переменные сценария не видимы вне сценария. Если модификаторы доступа добавляются, которые делают переменную сценария видимой вне сценария, к ним можно получить доступ как элементы сценария. Модификаторы доступа для переменных: общественность, защищенная, пакет, считанный общественностью, и общественность-init - видит главу Модификаторов Доступа. Например, если это - сценарий Foo.fx:
public def bohr = 0.529177e-10
Затем сценарий Noof.fx может получить доступ боровский:
println(Foo.bohr)
Время жизни переменной сценария со времени, сценарий загружается до конца выполнения программы.
Переменные экземпляра объявляются на верхнем уровне class. В пределах объявления class (и его подклассы) к переменным экземпляра получают доступ просто при помощи имени переменной. Otherside class, там получаются доступ через объект, которого они - элемент. Например:
def anA = A{ rat: true }; println(anA.rat); class A { var rat : Boolean; function isIt() { rat } } class B { function wellisIt() { anA.rat } }
Модификаторы доступа (общественность, защищенная, пакет, считанный общественностью, и общественность-init), управляют visiblity переменных экземпляра. Если никакой доступ modifers не обеспечивается, переменные экземпляра видимы только в пределах сценария.
Время жизни переменной экземпляра является временем жизни экземпляра class.
Локальные переменные объявляются в пределах блоков, включая блоки, которые являются телами функций. Локальные переменные видимы только в пределах самого внутреннего блока - их контекст включает все тело того блока (не только ниже объявления переменной). Задействованные выражения доступа не применимы к локальным переменным. Модификаторы доступа не должны быть применены к объявлениям локальной переменной.
[Чтобы сделать: объясните, почему цело-блочное правило обзора данных, и дает пример]
Время жизни локальной переменной заканчивается, когда из блока выходят.
В отличие от сценария и переменных экземпляра, объявления локальной переменной являются выражениями, то есть, у них есть тип и значение. Их тип является типом переменной, и их значение является значением переменной.
Параметры функции видимы только в пределах тела функции. Индукционные переменные для выражения видимы только в пределах тела для выражения. Контекст других параметров выражения является их выражением.
Они не должны быть присвоены.
См. главу Функций, для выражения, и на замене для синтаксиса.