Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ключевые слова

В Aura шестнадцать зарезервированных слов. Ни одним из них нельзя назвать привязку, функцию, схему или ключ без кавычек: type = 1 - синтаксическая ошибка. Ключ, который должен быть одним из этих слов, пишется строкой и так же читается (D11): "type": "service", затем o."type".

СловоЧто делаетПримерРешение
importПодключает другой модуль, пакет из реестра с закреплённой версией или модуль, который даёт хостimport "./lib.aura" as libD8, D12, D35
asДаёт имя тому, что подключил import; только после импортаimport org/net@v1.2 as netD12
typeОбъявляет схему: поля с типами, умолчаниями и инвариантами. Поле с типом-схемой хранит только то, что принял бы её newtype Port … endD15, D26, D27, D28, D41
enumОбъявляет закрытый набор строк для поля схемыenum Tier … endD18
defОбъявляет именованную функцию. Возвращает объект из своих свойств или последнее выражение, если тело им кончаетсяdef labels(team) … endD17, D40
endЗакрывает любой блок: объекты, def, type, enum, domain, cond, new, многострочную лямбду и строку texttls: enabled: true endD3, D38
domainИменованный раздел со своей областью видимости: метка становится ключом, а в теле можно вычислятьdomain "production" … endD17
newСоздаёт экземпляр схемы и проверяет егоnew Port number: 443 endD4, D38
assertПроверка, которая останавливает вычисление с сообщением; внутри type - инвариант, который переезжает вместе со схемойassert replicas > 0, "need one"D5, D28
shadowЗаново привязывает имя из внешней области - без него это E0302shadow port = 9090D7
pubДелает def, type или enum доступным для импорта; свойства видны всегдаpub def service(name)D12
condВыбор из нескольких значений, побеждает первая истинная веткаcond … else -> "dev" … endD14
elseПоследняя ветка cond, обязательна, чтобы у каждого пути было значениеelse -> "dev"D14
trueЛогическая истина. «Истинности» нет: условие, которое не Bool, - это E0306tls: true-
falseЛогическая ложьdebug: false-
nullОтсутствие значения. Поле схемы принимает его, только если тип помечен ?, и оно никогда не выводится текстомquota: Int? = nullD27, D31

Не зарезервировано

СловоЧто делаетПримерРешение
textОткрывает блочную строку, но только там, где ожидается значение, - key: text или x = text в конце строки. В остальных местах это обычное имя, так что поле с именем text продолжает работатьbody: text … endD16

Имена типов - String, Int, Float, Bool, List, Object - тоже не ключевые слова: это имена, которые знает проверка схем. Решения из последнего столбца - в журнале решений спецификации.