Play Frameworkの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を使用したため、再帰的に見えます。そして今、それはパラメータリストではなく本文にあります、それをどのように理解するのですか?
いいえ、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})
実装された関数を楽しくします
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加