kw in
Зарезервированное слово
Список слов: §1.4
Синтаксис
For = [ Label ":" ] [ "inline" ] "for" [ "await" ] Pattern "in" Expr [ "where" Expr ] Block ;Query = "from" Pattern "in" Expr { "where" Expr } [ "order" "by" Ord { "," Ord } ]
[ "group" "by" Expr "into" Ident ] [ "skip" Expr ] [ "take" Expr ]
[ "load" "(" IdentList ")" ] [ "select" Expr ] ;Грамматика: Прил. A
Определяется в
- 5.9 Выражения запросов — Форма: from x in источник (where e)\* (order by e (asc|desc)?, …)?
- 5.6 Циклы — for принимает Iterable<T> (в том числе iter<T>, коллекции, диапазоны); for await — Streamable<T>.
- 10.4 Broadcast — локальная рассылка — Broadcast<T> доставляет каждый опубликованный элемент всем текущим подписчикам.
- 17.2 Арифметика — Time ± Duration → Time, Time − Time → Duration, Instant − Instant → Duration.
- 10.3 Стримы — Тип stream<T, E = never>.
- 10.5 Топики — рассылка по кластеру — Топик — распределённый broadcast с хранением во встроенном хранилище.
- 17.1 Типы — Типы
- 1.4 Ключевые слова — Зарезервированные (нельзя использовать как имена)
Примеры
let top = from o in db.Order
where o.userId == uid && o.total > MIN_TOTAL
order by o.createdAt desc
skip page * PAGE_SIZE
take PAGE_SIZE
load(items)
let names = from u in users where u.active select u.name // List в памяти
let byRole = from u in users group by u.role into g select (g.key, g.count())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 } } }Связанные диагностики
query-not-sql, break-value, outside-loop, time-mix, yield-outside-stream, topic-without-journal