0

我正在学习如何一起使用 Scala、MongoDB 和 Play 框架,并且我一直在查看位于此处的演示项目:https ://github.com/jonasanso/play-reactive-mongo-db

但是,我不明白该create()方法中的语法。有没有不使用关键字的另一种写法yield?我还在学习 Scala,但我不明白这种方法是如何工作的。

  def create(name: String, population: Int) = Action.async {
    for {
      cities <- citiesFuture
      lastError <- cities.insert(City(name, population))
    } yield
      Ok("Mongo LastError: %s".format(lastError))
  }
4

1 回答 1

0

如果您不想使用 for-yield 语法,则可以将代码转换为等效的:

citiesFuture
  .flatMap (cities => cities.insert(City(name, population))
  .map (lastError => Ok(s"Mongo LastError: $lastError"))
于 2016-10-04T03:14:31.883 回答