gpt4 book ai didi

Scala 使用带有 + 的 Case 语句

转载 作者:行者123 更新时间:2023-12-04 17:59:52 25 4
gpt4 key购买 nike

仍在学习 Coursera Scala 类(class)的 hw1,我在处理 case 语句和元组时遇到了问题。

object Pascal {
def main(args: List[String]) = {
require((args length) == 2, "args length must equal 2")
println("calling pascal on " + (args head) + " and " + (args last))
pascal((args head) toInt, (args last) toInt)
}
def pascal(c: Int, r: Int): Int = {
require(((r >= 0) && (c >= 0))
&& (c > r + 1), "r and c must be >= 0 and c must be <= r + 1")
(c, r) match {
case (_, 0) => 1
case (0, _) => 1
case (1 + r, _) => 1 // error: value not found "+"
case (_, _) => pascal(r-1,c-1) + pascal(r-1,c-1)
}
}
}

请告诉我如何在 Scala 中编写代码:

case (1 + r, _) => 1

最佳答案

我相信您正在寻找这样的东西:

case (v, _) if(v == r + 1) => 1

它将匹配 c 的任何值(除了之前匹配的 c == 0 )然后应用测试来检查 v 等于 r + 1

关于Scala 使用带有 + 的 Case 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14012854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com