使用时"illegal start of simple expression" scalajs 中的错误:=



>如果我使用

loginError := if (loginItem.username.isEmpty) None else Some(loginItem.isUsernameValid)

编译器 说:

 illegal start of simple expression

当更改为

val err = if (loginItem.username.isEmpty) None else Some(loginItem.isUsernameValid)
loginError := err

一切都很顺利。

为什么我必须使用临时变量?

在第

一种情况下,您需要在if表达式周围加上括号,因为(通俗地说(if的优先级低于:=

loginError := (if (loginItem.username.isEmpty) None else Some(loginItem.isUsernameValid))

根据 SLS,if 子句是Expr,但不是SimpleExprPrefixExpr

不幸的是,在InfixExpr a := bb一定是PrefixExpr

这就是为什么你必须使用临时变量。

相关内容

  • 没有找到相关文章

最新更新