【发布时间】:2016-09-08 02:00:03
【问题描述】:
我有以下使用 if-then-else 阶梯的代码:
val test: Array[Array[Int]] = ...
val dim = 3
if (dim < test.length - 1) {
1
} else {
0
}
我尝试将其转换为模式匹配:
val dim = 3
val maxDim = test.length - 1
dim match {
case _ < maxDim => {
1
}
case _ => {
0
}
}
但这会产生多个错误......我如何才能将其作为模式匹配?
更新:另一种尝试是
dim match {
case maxDim => 0
case _ => 1
}
但也不行
【问题讨论】:
-
在“模式匹配”这句话中有一个提示。它不仅仅是为 if/else 提供替代关键字,这就是您似乎试图使用它的方式。 @Mastran 提供了答案,但实际上,任何关于 Scala 的介绍性文字都会涵盖这一点。因此,在每种情况下,提供要匹配的模式(可以是您的示例中的数字文字),提供保护以进一步测试该匹配,然后指定模式匹配和保护条件为真时应该发生的情况。
标签: scala functional-programming pattern-matching