scala - 使用 if 以防万一
问题描述
我正在尝试学习 Scala 并尝试编写一个使用 case 语句(switch)来确定数字是奇数还是偶数的函数。知道我的语法错误在哪里吗?
val y = List(1, 3, 5, 8, 11, 15)
def oddEven(y: Int) = y match {
case y if y % 2 ==0 => 2
case y if y %2 != 0 => 4
case _ => 0
}
解决方案
正确的方法是:
def oddEven(y: Int) = y match {
case x if x % 2 == 0 => 2
case _ => 4
}
因为只有偶数或奇数两种情况。
我会为 case 变量取其他名称(例如x
,而不是y
)。
List(1, 3, 5, 8, 11, 15).map(oddEven) // > List(4, 4, 4, 2, 4, 4)
如果只有 2 个案例if-else
可能更具可读性:
def oddEven(y: Int) =
if(y % 2 == 0) 2 else 4
推荐阅读
- r - sqlExecute() 查询中缺少外部字符串字符
- amazon-web-services - Amazon SageMaker 从 S3 下载文件
- azure - 如何从 Azure python sdk 创建 Azure Functions?
- python - 在 Python 脚本中使用 HTML 电子邮件使用 for 循环显示 Python 列表
- php - 发送电子邮件按钮
- c++ - casablanca http_listener“将 url 添加到 url 组时出错”
- javascript - 如何使用javascript过滤包含输入单元格的表?
- javascript - 每 3 小时更换一次链接的最后一位数字 (x + 1)
- python - PySpark ChiSqSelector p 值和测试统计
- vba - ADODB reordset 值提取非常慢