OxL Справочник OxL
РусскийEnglish

kw result

Контекстное слово — контракты функции (§6.7)

Список слов: §1.4

Определяется в

  • 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
  • 6.7 Контракты — requires проверяется при входе, ensures — при выходе (result — возвращаемое значение, old(e) — значение e на входе), invariant (§4.2) — посл
  • 5.5 Сопоставление с образцом — match ДОЛЖЕН быть исчерпывающим.
  • 5.6 Циклы — for принимает Iterable<T> (в том числе iter<T>, коллекции, диапазоны); for await — Streamable<T>.
  • 16.3 gRPC и protobuf — import proto "payments.proto" генерирует extern service и типы; вызовы — как к обычным сервисам через connect.

Примеры

oxl
match result {
  Receipt r if r.amount > LIMIT => review(r)
  Receipt r                     => ok(r)
  Declined(reason)              => warn(reason)
  Timeout | Unavailable         => retryLater()
  _                             => fail Unknown
}

— 5.5 Сопоставление с образцом

oxl
for u in users { … }
for (i, u) in users.enumerate() { … }
for i in 0..n where i % 2 == 0 { … }      // фильтр
for await msg in input { … }               // stream<T>
while cond { … }
while let x? = queue.pop() { … }
loop { if done { break result } }          // loop — выражение
'outer: for a in xs { for b in ys { if a == b { break 'outer } } }

— 5.6 Циклы

Связанные диагностики

contract, non-exhaustive, pattern-bindings, unreachable-arm, break-value, outside-loop, import-skip

См. также