Модификаторы переменных и методов¶
TODO
Необходимо обновить ссылки по всей статье.
Опциональность части синтаксиса
Во всех блоках кода ниже [Квадратные скобки] используются для того, чтобы обозначить необязательность написания того, что заключено внутри них.
Переменные¶
В объявлении переменных на первом месте идут ключевые слова-модификаторы, затем — тип данных (тип переменной), после — её название.
"Имя" переменной может состоять из цифр, букв латинского алфавита и нижних подчёркиваний, притом первым должны идти либо буква, либо "_".
Если в объявлении сразу есть значение, то вместо конкретного типа может стоять ключевое слово let — автоматическое взятие присваиваемого типа (аналог autо в C++). К примеру, в конструкции "let a = 3.4;" переменной "a" присвоится тип double, так как "3.4" — как раз double.
Список модификаторов:
-
const: запрет на последующее изменениезначения. Также см. «Константы и перечисления». -
privateиprotected: область видимости переменной, см. «Области видимости» (очень укороченный материал на Википедии). -
play,ui,clearscopeиvirtualscope: в какой сфере обработки движка находится переменная, см. «Сферы влияния». -
meta: указание, что данная переменная может быть изменена дочерними классами только через свойства актора (через блокDefault {}). Грубо говоря, константа для актора, переопределяемая в его свойствах. -
transient: переменная с этим модификатором не будет записываться в файл во время сохранения игры.
Далее дан список технических модификаторов, которые используются движком, но использование которых в пользовательских модификациях резко ограничено или просто не имеет смысла.
-
native: сообщение компилятору, что эти данные/методы нужно подгружать с более низкого уровня движка. -
readonly: эта переменная доступна только для чтения (изменяется она на более низком уровне, чем ZScript). -
@: данная переменная — указатель на что-то, хранящееся вне юрисдикции ZScript. -
deprecated(версия, сообщение): если использовать такую переменную в версии ZScript выше указаннойверсии, компилятор выдаст предупреждение, что эта переменная уже неактуальна и лучше бы использовать другую.сообщение— строковая константа, которая должна выводиться; если не указана — берётся стандартный текст. -
version(версия): запрет запуска движка, если используемая версия ZScript ниже указаннойверсии. -
latent: ничего не делает. Вообще ничего...