我以为我可以通过 unapply 将 n+k 模式实现为 scala 中的活动模式,但它似乎失败了unspecified value parameter: k
object NPlusK {
def apply(n : Int, k : Int) = {
n + k
}
def unapply(n : Int, k : Int) = {
if (n > 0 && n > k) Some(n - k) else None
}
}
object Main {
def main(args: Array[String]): Unit = {
}
def fac(n: Int) : BigInt = {
n match {
case 0 => 1
case NPlusK(n, 1) => n * fac(n - 1)
}
}
}
是否可以在 Scala 中实现 n+k 模式,在这种情况下如何实现?