三元运算符不工作scala

Bas*_*khi 1 scala ternary-operator

我试图在scala中创建一个三元运算符,但实际上似乎'?'无法解析该字符

这是完成的方法

object Credit {
  def getMaximumWeek(orderId: Int, locale: String): Int = {
    val orderCompletedHistoryCount = Order.getOrderCompletedHistoryCount(orderId, locale);
   orderCompletedHistoryCount == 0 ? 0: Order.getMaximumAllowedWeeks(orderId, locale)
  }
}
Run Code Online (Sandbox Code Playgroud)

参考这个链接 ,我得到一个错误connot解决符号'?' 甚至两种方法都返回整数

gsa*_*ras 5

Scala没有?运算符C++ 那样的三元运算符,因此无论两个operadans返回什么,都会出现错误.

使用if-else表达式,如下所示:

if(orderCompletedHistoryCount == 0)
    0
else
    Order.getMaximumAllowedWeeks(orderId, locale)
Run Code Online (Sandbox Code Playgroud)

  • “改为使用if-else语句,如下所示:” – Scala中没有`if`语句。只有一个“ if”表达式。如果“ if”是一个语句,则您不能用它代替条件运算符,因为条件运算符是表达式,而不是语句。您的答案“仅”有效,因为“如果”不是“ *”声明。 (2认同)