1

私が使用する場合

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

すべてうまくいく。

なぜ一時変数を使用する必要があるのですか?

4

2 に答える 2

3

最初のケースでは if 式を括弧で囲む必要があります。これは、(素人の言葉で言えば) if は:=:よりも優先順位が低いためです。

loginError := (if (loginItem.username.isEmpty) None else Some(loginItem.isUsernameValid))
于 2017-03-20T04:28:15.517 に答える