我刚开始使用 Scala,但我无法以任何方式弄清楚。
def setReg(sid: String, reg: String) = {
// Получаю Id из БД
val userId = sidDAO.findUserIdBySid(sid).map(us => us.map(_.userId))
// Вношу изменения по полученному Id
userDAO.updateReg(userId, reg)
}
问题是userId有Future[Seq[Option[Long]]]格式,我需要传Long。如何将其转换为正确的类型?
简短的回答是您不必这样做。可以立即转移。
但通常我们需要等待一个成功的结果
Future
。要做到这一点,需要从层和内部Future
拉出内部。Seq
Option
a) 您可以使用任一
Option
从集合中删除。flatten
flatMap
b) 浏览收集和处理过程,每个人
Future
都会对我们有所帮助Future.traverse
。c) 嵌套
Future[Future[Long]]
的也使用flatten
or删除flatMap
。一起来看看吧:
与
for
语法相同: