2017-03-20 9 views
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 

모든 것이 잘 간다 .

임시 변수를 사용해야하는 이유는 무엇입니까?

답변

3

당신은 낮은 :=보다 우선 순위가있는 경우가 있기 때문에 (쉽게 설명하자면에서) 첫 번째 경우에 경우 표현 괄호가 필요합니다

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

감사합니다. 아주 잘 작동합니다.) – hailong

0

따르면 SLS에를, if 절은 Expr하지만, SimpleExpr 또는 PrefixExpr이 아닙니다.

불행히도 InfixExpra := b에서 bPrefixExpr이어야합니다.

그래서 임시 변수를 사용해야합니다.