Ole*_*leg 5 scala playframework playframework-2.0
有人可以解释特征中使用的Scala代码安全的playframework示例应用程序zentask:
def IsAuthenticated(f: => String => Request[AnyContent] => Result) = Security.Authenticated(username, onUnauthorized) { user =>
Action(request => f(user)(request))
}
Run Code Online (Sandbox Code Playgroud)
我刚开始学习Scala并且无法弄清楚这个序列f: => String => Request[AnyContent] => Result
.这是什么意思?我在手册中找不到任何使用几个=>
代替参数列表的功能的例子.
我错过了什么?
也许如果你添加一些parantheses更容易:
f: => (String => (Request[AnyContent] => Result))
Run Code Online (Sandbox Code Playgroud)
f
是一个按名称调用的参数 ; 它是一个函数,它接受String
并返回:一个函数,它接受一个Request[AnyContent]
并返回一个Result
.
f
是一个函数,给定 aString
将产生一个等待 a提供 a 的函数。Result[AnyContent]
Result
然后在第 2 行,您传递给f
参数user
,该参数必须是 a String
,然后将该request
参数传递给结果函数。
这种传递参数的方式称为柯里化(currying)。可以在那里找到一个既简短又复杂一点的示例:http ://www.scala-lang.org/node/135
归档时间: |
|
查看次数: |
384 次 |
最近记录: |