And*_*rew 4 scala playframework
我是Scala和Play Framework的新手,之前从未见过以下参数类型.
def IsAuthenticated(f: => String => Request[AnyContent] => Result)
Run Code Online (Sandbox Code Playgroud)
令我困惑的是这f: =>部分.如果那=>不存在,我会将其视为将a映射String到a Request然后再映射到a 的函数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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |