理解条件操作的标度
scala for comprehension condition operation
在我的scala程序中,我很少有for-comprehension的操作。我想像这样在里面有一个 if 条件,
user <- userDao.findUser(authToken)
haveDevice <- userDao.haveDevice(deviceId, deviceType)
if (haveDevice) {
r <- userDao.addDevice(user.id, deviceId, deviceType)
}
但是上面的代码是无效的,怎么办?谢谢
在 for comprehension 中使用 if 条件的正确语法如下所示。
for {
user <- userDao.findUser(authToken)
haveDevice <- userDao.haveDevice(deviceId, deviceType)
r <- userDao.addDevice(user.id, deviceId, deviceType) if haveDevice
}
假设您的 for comprehension 对 Future 进行操作,如果 if 条件失败,则整个理解 returns 一个 failed Future with error
java.util.NoSuchElementException: Future.filter predicate is not
satisfied
在我的scala程序中,我很少有for-comprehension的操作。我想像这样在里面有一个 if 条件,
user <- userDao.findUser(authToken)
haveDevice <- userDao.haveDevice(deviceId, deviceType)
if (haveDevice) {
r <- userDao.addDevice(user.id, deviceId, deviceType)
}
但是上面的代码是无效的,怎么办?谢谢
在 for comprehension 中使用 if 条件的正确语法如下所示。
for {
user <- userDao.findUser(authToken)
haveDevice <- userDao.haveDevice(deviceId, deviceType)
r <- userDao.addDevice(user.id, deviceId, deviceType) if haveDevice
}
假设您的 for comprehension 对 Future 进行操作,如果 if 条件失败,则整个理解 returns 一个 failed Future with error
java.util.NoSuchElementException: Future.filter predicate is not satisfied