有没有办法看到Scala中匹配期间接收到的通配符模式?

Bru*_*son 2 scala wildcard case match actor

在Akka或Scala Actor中进行模式匹配时,有没有办法看到匹配不是什么(即)通配符_正在评估什么?有没有一种简单的方法可以查看从邮箱中处理哪条消息无法找到匹配项?

def receive = {
  case A =>
  case B =>
  case C =>
  ...
  case _ =>
    println("what IS the message evaluated?")
}
Run Code Online (Sandbox Code Playgroud)

谢谢,

布鲁斯

ten*_*shi 10

您可以像这样定义变量:

def receive = {
  case A =>
  case B =>
  case C =>
  ...
  case msg =>
    println("unsupported message: " + msg)
}
Run Code Online (Sandbox Code Playgroud)

您甚至可以为与之匹配的消息指定名称@:

def receive = {
  case msg @ A => // do someting with `msg`
  ...
}
Run Code Online (Sandbox Code Playgroud)