被包在花括号内没有match的一组case语句是一个偏函数,它是PartialFunction[A, B]的一个实例,A代表输入参数类型,B代表返回结果类型,常用作输入模式匹配,偏函数最大的特点就是它只接受和处理其参数定义域的一个子集。
object PartialFuncDemo {
//没有match的偏函数
val func1: PartialFunction[String, Int] = {
case "one" => 1
case "two" => 2
case _ => -1
}
//使用有match实现与偏函数一样的功能
def func2(num: String) : Int = num match {
case "one" => 1
case "two" => 2
case _ => -1
}
def main(args: Array[String]) {
println(func1("one"))//1
println(func2("one"))//1
}
}