Только начинаем работу над Scala Actors. На веб-сайте Scalaговорится:
Операций блокировки потоков можно избежать, используя
react
, чтобы подождать новые сообщения (кулон на основе событийприем
). Тем не менее, существует (обычно небольшая) цена, которую нужно заплатить:react
никогда не возвращается....
Обратите внимание, что использование
react
внутри цикла, в то время как
цикл не работает! Однако Поскольку циклы являются общими, для них существует специальная библиотечная поддержка в форме функцииloop
. Его можно использовать следующим образом:
loop {
react {
case A => ...
case B => ...
}
}
Я сейчас в замешательстве - кажется, есть противоречие:
а) Если отреагировать
никогда не вернется, тогда какой смысл помещать его в цикл?
b) Поскольку цикл многократно выполняет блок, чем он отличается от
while(true)
- почему while
работает, и каким образом он «не работает»?