scala - 我可以将此 if else 语句转换为模式匹配,而无需在 scala 中进行嵌套模式匹配吗?
问题描述
假设我有这个条件,所有值都相互依赖 -
val a = 9
val b = 89
val c = 0
val result =
if (a == 0) 0
else if (b == 4) 0
else if (c < 90) 0
else a + b + c
如何在不嵌套的情况下使用模式匹配对其进行编码,或者以这种方式编码是否可以。在这种情况下使用 if else 条件而不是使用模式匹配是否有一些缺点。
解决方案
那么你可以这样做:
val a = 9
val b = 89
val c = 0
val result =
(a, b, c) match {
case (0, _, _) => 0
case (_, 0, _) => 0
case (_, _, c) if (c < 90) => 0
case (a, b, c) => a + b + c
}
但老实说,我只会使用if / else
.
在这里,您不匹配任何模式。
推荐阅读
- docker - 容器中的 CRON 作业
- node.js - 在遗留应用程序上使用 SSLv3 和节点
- android - 使用自定义 StateListDrawable 查看不呈现
- c++ - 将csv文件作为二维数组或向量读入c++,并对数组中的数字进行计算
- ios - 如何在 Swift 中使用 UITextField 从图像中提取特定文本?
- python - 更改用户的角色颜色以在 discord.py 中选择十六进制值
- java - Gradle:编译 spark-scala 程序时出现 java.lang.StackOverflowError
- git - 重复合并来自另一个分支的单个文件
- java - 在java中增加构造函数方法中的静态变量是否有效?
- python - 使用python将jpg转换为pdf时旋转无效