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.

Локальные переменные

Локальные переменные объявляются в пределах блоков, включая блоки, которые являются телами функций. Локальные переменные видимы только в пределах самого внутреннего блока - их контекст включает все тело того блока (не только ниже объявления переменной). Задействованные выражения доступа не применимы к локальным переменным. Модификаторы доступа не должны быть применены к объявлениям локальной переменной.

[Чтобы сделать: объясните, почему цело-блочное правило обзора данных, и дает пример]

Время жизни локальной переменной заканчивается, когда из блока выходят.

В отличие от сценария и переменных экземпляра, объявления локальной переменной являются выражениями, то есть, у них есть тип и значение. Их тип является типом переменной, и их значение является значением переменной.

Параметры, Индукционные переменные, и другие Параметры Выражения

Параметры функции видимы только в пределах тела функции. Индукционные переменные для выражения видимы только в пределах тела для выражения. Контекст других параметров выражения является их выражением.

Они не должны быть присвоены.

См. главу Функций, для выражения, и на замене для синтаксиса.