标量中的分部函数



我在以下几个地方看到了描述Scala中部分函数使用的代码。

val divide: PartialFunction[Int, Int] = {
case d: Int if d != 0 => 42 / d
}

这里,divide是一个变量,其类型为PartialFunction[Int,Int],这是一个特性。我对RHS部分感到困惑。由于变量"0"的类型;划分";是:PartialFunction[Int,Int],它需要通过使用";新的";关键字。我不确定这是什么语法。另外,isdefined((函数是如何自动定义的?(isDefined((似乎可用;但它隐藏在那里(。

有人能帮忙吗。

在某些情况下,右侧是一个函数文字。

它是一个文本,就像IntCharString在文本之前没有new关键字一样。

案例中的函数具有语法

{
case ... => ...
(optionally more cases)
}

所需的类型必须是完全已知的。如果期望PartialFunction,则将其作为PartialFunction。否则,它被视为Function1

对于PartialFunction变体,它的isDefinedAt是由案例的模式定义的。

相关内容

  • 没有找到相关文章

最新更新