scala - Scala 中的空部分函数

标签 scala partialfunction

在我看来,部分函数的 { case ... => ... } 语法需要至少一个 case:

scala> val pf: PartialFunction[String, String] = { case "a" => "b" } 
pf: PartialFunction[String,String] = <function1>

scala> val pf: PartialFunction[String, String] = { }                
<console>:5: error: type mismatch;
 found   : Unit
 required: PartialFunction[String,String]
       val pf: PartialFunction[String, String] = { }
                                                 ^

那么,定义“空”偏函数的最佳方法是什么?有没有比“手动”覆盖 isDefinedAt 和 apply 更好的方法?

最佳答案

Map 是一个 PartialFunction,所以你可以这样做:

val undefined: PartialFunction[Any, Nothing] = Map.empty

关于scala - Scala 中的空部分函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188933/

相关文章:

scala - 部分函数匹配的对象的引用是什么?

java - 在 Java 中实现 Scala PartialFunction 的最简单方法是什么?

scala - scalaz.Equal 是如何解决的

scala - Hadoop : java. io.IOException:传递删除或放置

list - 在元组列表上使用map()时的详细表示法

scala - 在函数式编程术语中,您将 orElse 或其他回退方法称为什么?

scala - 误导编译时间错误

scala - 代数数据类型的类型级别集

scala - PartialFunction orElse 的类型界限是否比它应该的更宽松?

scala - 如何将 X => Option[R] 转换为 PartialFunction[X,R]