基本语法

Scala 有一种特殊类型的函数,称为部分函数 ,它扩展了普通函数 - 这意味着 PartialFunction 实例可以在任何预期的 Function1 中使用。可以使用也用于模式匹配的 case 语法匿名定义部分函数 :

val pf: PartialFunction[Boolean, Int] = {
  case true => 7
}

pf.isDefinedAt(true) // returns true
pf(true) // returns 7

pf.isDefinedAt(false) // returns false
pf(false) // throws scala.MatchError: false (of class java.lang.Boolean)

如示例所示,不需要在其第一个参数的整个域上定义部分函数。标准 Function1 实例假定为 total ,这意味着它是为每个可能的参数定义的。