8.8 Локальные акторы
actor Session {
var cart: Cart = Cart.empty()
msg add(item: Item) { cart.push(item) }
msg total() -> Money { cart.sum() }
}
let s = spawn Session() // ActorRef<Session>
s.add(item) -> s.total() -> show(it)- Сообщения обрабатываются строго по одному в порядке поступления от каждого отправителя.
- Вызов
msg— приостанавливаемый; завершается после обработки сообщения и возвращает результат. Для «отправил и забыл» —~>илиspawn. - Состояние актора (
var) доступно только из егоmsg. Аргументы и результаты ДОЛЖНЫ быть передаваемыми (§7.3). - Ожидание другого актора внутри
msgдопустимо; циклические ожидания анализатор помечает предупреждением. - Распределённые (шардированные) акторы — §12.5.
Связанные диагностики
См. также
Исходник: docs/spec/oxl-standard.md