Использую akka в Scala:
object MyActor extends Actor {
def receive = {
case "hello" => println("hello back at you")
case _ => println("huh?")
}
}
Это компилится нормально, но вот это
def receive = println("hello back at you")
дает ошибку
type mismatch;
[error] found : Unit
[error] required: MyActor.Receive
[error] (which expands to) PartialFunction[Any,Unit]
[error] def receive = println("hello back at you")
1) Почему ошибка во втором случае? Ведь
case "hello" => println("hello back at you") также ничего не возвращает, как и просто
println("hello back at you")
2) Что значит
case "hello" -- какой параметр сравнивается на соответсвие ему? Тут нет
match что-то.