是否有可能以某种方式将PartialFunction(让我们假设它总是只包含一个案例)编组成人类可读的东西?
假设我们有类型Any(messages:List [Any])的集合和使用模式匹配块定义的PartialFuntion [Any,T]的数量.
case object R1
case object R2
case object R3
val pm1: PartialFunction[Any, Any] = {
case "foo" => R1
}
val pm2: PartialFunction[Any, Any] = {
case x: Int if x > 10 => R2
}
val pm3: PartialFunction[Any, Any] = {
case x: Boolean => R3
}
val messages: List[Any] = List("foo", 20)
val functions = List(pm1, pm2)
Run Code Online (Sandbox Code Playgroud)
然后我们可以找到所提供的PF和相关应用程序匹配的所有消息
val found: List[Option[Any]] = functions map { f =>
messages.find(f.isDefined).map(f)
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我需要以 …