ときどき魔法が起こりすぎて、コンパイラが何をしているのかわからなくなってしまうことがあります。たとえば akka では、receive
次のように定義されています。
def receive: Receive
type Receive = Actor.Receive
次のようにReceive
定義されます。
type Receive = PartialFunction[Any, Unit]
次に、次のように宣言receive
します。
def receive = {
case "a" => //do something
case "b" => //do something
case _ => //default
}
私は知ってPartialFunction
いますが、私が得られないのは、メッセージをどのように適用するかということreceive
です。を返すので、 apply
andを提供することを想定していませんか?isDefinedAt
receive
PartialFunction
構文的には、メッセージにどのように適用receive
されますか? それは何かのようなことをしmessage match receive
ますか?