私は Scala と Play Framework にかなり慣れていないので、次のパラメーターの型を見たことがありません。
def IsAuthenticated(f: => String => Request[AnyContent] => Result)
私を混乱させているのはそのf: =>
部分です。それがなければ、 aを a に、次に=>
a にマップする関数と考えます。String
Request
Result
私は Scala と Play Framework にかなり慣れていないので、次のパラメーターの型を見たことがありません。
def IsAuthenticated(f: => String => Request[AnyContent] => Result)
私を混乱させているのはそのf: =>
部分です。それがなければ、 aを a に、次に=>
a にマップする関数と考えます。String
Request
Result
一般に、=> A
はタイプ A の名前によるパラメーターです。つまり、パラメーターは、関数の本体で使用された場合にのみ評価されます。したがって、は、型が を取り、 からへの関数を返すf
関数である、名前によるパラメーターです。以下は、名前によるパラメーターの評価方法の例です。String
Request[AnyContent]
Result
scala> def twice[A](a: =>A) = (a,a)
twice: [A](a: => A)(A, A)
scala> var i = 0
i: Int = 0
scala> twice {
| i += 1
| i
| }
res0: (Int, Int) = (1,2)