三元运算符不工作 scala
Ternary operator is not working scala
我想在 scala 中创建一个三元运算符,但实际上 '?'
字符似乎无法解析
这是完成的方法
object Credit {
def getMaximumWeek(orderId: Int, locale: String): Int = {
val orderCompletedHistoryCount = Order.getOrderCompletedHistoryCount(orderId, locale);
orderCompletedHistoryCount == 0 ? 0: Order.getMaximumAllowedWeeks(orderId, locale)
}
}
参考这个link
,我收到一个错误 connot resolve symbol '?' 即使两种方法都返回整数
Scala 没有三元运算符,例如 C++ 中的 ?
运算符,因此无论两个运算符 return.
改为使用 if-else 表达式,如下所示:
if(orderCompletedHistoryCount == 0)
0
else
Order.getMaximumAllowedWeeks(orderId, locale)
您可以使用 Scalaz。唯一的区别是它需要 |
符号而不是 :
符号。
import scalaz.Scalaz._
false ? "Yes" | "No" // returns No
它不仅适用于布尔值,您也可以尝试使用 Option
个对象:
None ? "Defined" | "Empty" // returns Empty
您应该将以下行添加到 build.sbt 以便使用它:
libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.2.16"
我想在 scala 中创建一个三元运算符,但实际上 '?'
字符似乎无法解析
这是完成的方法
object Credit {
def getMaximumWeek(orderId: Int, locale: String): Int = {
val orderCompletedHistoryCount = Order.getOrderCompletedHistoryCount(orderId, locale);
orderCompletedHistoryCount == 0 ? 0: Order.getMaximumAllowedWeeks(orderId, locale)
}
}
参考这个link ,我收到一个错误 connot resolve symbol '?' 即使两种方法都返回整数
Scala 没有三元运算符,例如 C++ 中的 ?
运算符,因此无论两个运算符 return.
改为使用 if-else 表达式,如下所示:
if(orderCompletedHistoryCount == 0)
0
else
Order.getMaximumAllowedWeeks(orderId, locale)
您可以使用 Scalaz。唯一的区别是它需要 |
符号而不是 :
符号。
import scalaz.Scalaz._
false ? "Yes" | "No" // returns No
它不仅适用于布尔值,您也可以尝试使用 Option
个对象:
None ? "Defined" | "Empty" // returns Empty
您应该将以下行添加到 build.sbt 以便使用它:
libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.2.16"