有两种定义PF的方式:1)使用文字语法
1)使用case
在第二种情况下,我是否应该手动调用
case {}
,2)作为显式类。我需要以下函数抛出MatchError,但在第二种情况下不会发生这种情况。1)使用case
val test: PartialFunction[Int, String] = {
case x if x > 100 => x.toString
}
2) 作为类
val test = new PartialFunction[Int, String] {
def isDefinedAt(x: Int) = x > 100
def apply(x: Int) = x.toString
}
在第二种情况下,我是否应该手动调用
isDefinedAt
?难道编译器不会自动调用它吗?