2017-02-28 15 views
0

私のscalaプログラムでは、私は理解のための操作がほとんどありません。私はこのようなif条件を持っています。理解のためのscala操作

user <- userDao.findUser(authToken) 
haveDevice <- userDao.haveDevice(deviceId, deviceType) 
if (haveDevice) { 
    r <- userDao.addDevice(user.id, deviceId, deviceType) 
} 

上記のコードは無効です。ありがとう

+0

何が間違いを犯しますか? –

答えて

0

のための適切な構文は、理解のための適切な構文は以下のとおりです。

条件が失敗した場合、全体の理解がエラー

java.util.NoSuchElementExceptionで失敗しました未来を返す場合、理解は、将来に作用するためにあなたを想定し

for { 
    user <- userDao.findUser(authToken) 
    haveDevice <- userDao.haveDevice(deviceId, deviceType) 
    r <- userDao.addDevice(user.id, deviceId, deviceType) if haveDevice 
} 

:Future.filter述語が ではありません満足

+0

user < - userOpt、userOptがnoneの場合、NoSuchElementExceptionを返しますか? –

+1

あなたの理解のためにFutureの代わりにOptionを操作し、Noneの条件を使用しない場合は、NoSuchElementException例外を取得しません。代わりに、理解の出力はNoneになります。 –

関連する問題