如果else表达式处于平滑运行状态,则更新方法scala函数

如果else表达式处于平滑运行状态,则更新方法scala函数,scala,if-statement,slick,Scala,If Statement,Slick,我想用if-else语句检查变量 newPsInfo.clearedCanLoadSC 如果是真的,那么我想做一个今天的时间戳,或者其他日期的时间戳 所以我尝试了 ternary if-else with condition? true : false newPsInfo.clearedCanLoadSc.equals(true) ? LocalDate.now() : LocalDate.of(2000,1,1) 但不幸的是,这不起作用 首先是I.filter by u.id,然后是I

我想用if-else语句检查变量 newPsInfo.clearedCanLoadSC

如果是真的,那么我想做一个今天的时间戳,或者其他日期的时间戳 所以我尝试了

ternary if-else with 
condition? true : false

newPsInfo.clearedCanLoadSc.equals(true) ? 
LocalDate.now() : LocalDate.of(2000,1,1)
但不幸的是,这不起作用

首先是I.filter by u.id,然后是I.productSettingsTable类将结果映射到new productSettingsInfo参数的新更新值。 所以我的问题是,我是否可以在.map或.update方法中插入if-else语句,如下所示:

    newPsInfo.clearedCanLoadSc.equals(true) ? 
    LocalDate.now() : LocalDate.of(2000,1,1))
问题是我的if-else子句不起作用。Intelli j显示错误无法解析符号


那么,有没有办法将if-else语句插入到.map或.update函数中呢?

Scala没有三进制条件运算符。相反,只需像这样使用if-else表达式

if (newPsInfo.clearedCanLoadSc) LocalDate.now() else LocalDate.of(2000,1,1)
请注意,例如,if表达式确实是一个计算结果为值的表达式,而不是一个控件结构

val x: String = if (true) "foo" else "bar"
x // res0: String = foo
针对注释,控制结构是诸如while循环或if-then条件的构造,其目的是根据某些程序状态改变程序控制流。现在,Scala显然有这些,但我们说它们是因为它们不仅改变了执行流,而且还改变了执行流。将此与Java的if语句进行对比:

String x = if (true) "foo" else "bar";
这会导致错误

error: illegal start of expression
String x = if (true) "foo" else "bar";

请注意,我们无法对其进行评估并将其分配给变量
x

您所说的控制结构是什么意思?您能举个例子吗
error: illegal start of expression
String x = if (true) "foo" else "bar";