Play Action中的隐式关键字

时间:2014-01-24 22:33:23

标签: scala playframework

有人可以向我解释一下在下面的Play动作中隐式关键字的用法:

     def index = Action { implicit request =>
      Async {
      val cursor = collection.find(
      BSONDocument(), BSONDocument()).cursor[Patient] 
      val futureList = cursor.toList 
      futureList.map { patients => Ok(Json.toJson(patients)) } 
     }
    }

提前致谢。

1 个答案:

答案 0 :(得分:3)

在所有Scala(不仅仅是Play)中,匿名函数的参数可以像方法一样标记为implicit。在函数体内,implicit参数是可见的,可以在范围内解析为适当的值。

在这种情况下,request是匿名函数的参数,用于描述操作将执行的操作。 implicit允许使用恰好在范围内的任何类型Request的值调用函数,因此您不必自己提供Request实例。您可以相信它会在那里,因此您可以专注于处理请求的工作。