【问题标题】:scala two variables if else conditionscala 两个变量 if else 条件
【发布时间】:2021-12-08 11:38:52
【问题描述】:

如何在 Scala 中做得更好?

def fooOutput(v1: Double, v2: Int): Int = {
    if (v1 >= 9 & v2 >= 2) {
      5
    }

    else if (v1 >= 8) {
      4
    }
    else if (v1 >= 4) {
      3
    }
    else {
      2
    }
  }

我不喜欢这个 if else if else 逻辑。

我可以对两个变量使用 switch 语句还是使用更好的 Scala 函数方法?

【问题讨论】:

  • 这段代码你不喜欢什么?
  • 您可以去掉大括号使其更短。

标签: scala if-statement switch-statement case


【解决方案1】:

您可以将您的条件转移到模式保护中,但不确定它会好得多:

def fooOutput(v1: Double, v2: Int): Int = v1 match {
  case _ if v1 >= 9 && v2 >= 2 => 5
  case _ if v1 >= 8            => 4
  case _ if v1 >= 4            => 3
  case _                       => 2
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2023-01-11
    相关资源
    最近更新 更多