【发布时间】:2021-02-05 06:17:28
【问题描述】:
我是 Scala 的新手,我正在尝试 PartialFunctions,这是测试功能的正确方法吗,因为一些教程遵循了这个方法,但对我不起作用?
代码:
object MyScalaApp extends App {
def try29{
val r = new PartialFunction[Int, Int]
{
def isDefinedAt(q: Int) = q < 0 // Applying isDefinedAt method
def apply(q: Int) = 12 * q // Applying apply method
}
val rr = new PartialFunction[Double, Double]
{
def isDefinedAt(q: Double) = {q < 0}
def apply(q: Double) = 12 * q
}
println(r(1))
println(r(2))
println(rr(-1))
println(rr(-2))
}
}
try29
}
输出:
12
24
-12.0
-24.0
为什么apply 不匹配第一个条件时会被调用?
当我写def isDefinedAt(q: Int) = q != 0 时,它给出println(r(0)) 作为输出0
【问题讨论】:
标签: scala partialfunction