运维开发网

Scala参数类型说明

运维开发网 https://www.qedev.com 2020-06-22 20:23 出处:网络 作者:运维开发网整理
我是 Scala和Play Framework的新手,我之前从未见过以下参数类型. def IsAuthenticated(f: => String => Request[AnyContent] => Result) 令我困惑的是f:=>部分.如果那个=>我不认为它是一个将String映射到Request然后映射到Result的函数. 通常,=> A是类型A的名称参数.这意味着只有在函数体中使用它
我是 Scala和Play Framework的新手,我之前从未见过以下参数类型.

def IsAuthenticated(f: => String => Request[AnyContent] => Result)

令我困惑的是f:=>部分.如果那个=>我不认为它是一个将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)
0

精彩评论

暂无评论...
验证码 换一张
取 消