在Play框架中的Action.scala文件中,有以下功能:
final def apply[A](bodyParser: BodyParser[A])
(block: R[A] => Result): Action[A]
= async(bodyParser) { req: R[A] =>
Future.successful(block(req))
}
有以下部分:
{ req: R[A] =>
Future.successful(block(req))
}
如果在函数参数列表中:这意味着req是
的类型 R[A] =>Future.successful(block(req))
但是它在block(req)中使用了req,所以看起来像递归。现在它不在参数列表中但在一个正文中,如何理解它?
答案 0 :(得分:3)
不,req的类型为R [A] req:R [A] => Future.successful(block(req))是一个函数,它接受R [A]类型的对象并返回Future.successful(block(req))
示例:
def fun(param:Int=>String)=param(9)
声明一个将函数作为参数
的函数def fun2 = fun({i:Int=>i.toString})
为实现的功能带来乐趣