有人可以向我解释一下在下面的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)) }
}
}
提前致谢。
答案 0 :(得分:3)
在所有Scala(不仅仅是Play)中,匿名函数的参数可以像方法一样标记为implicit
。在函数体内,implicit
参数是可见的,可以在范围内解析为适当的值。
在这种情况下,request
是匿名函数的参数,用于描述操作将执行的操作。 implicit
允许使用恰好在范围内的任何类型Request
的值调用函数,因此您不必自己提供Request
实例。您可以相信它会在那里,因此您可以专注于处理请求的工作。