如何在Scala中解释=>的序列?
我目前正在开始使用play框架,但我的
Scala知识还不够.
据我所知,=>表示IsAuthenticated具有某种函数作为参数. def IsAuthenticated(f: => String => Request[AnyContent] => Result) = Security.Authenticated(username,onUnauthorized) { user => Action(request => f(user)(request)) } 解决方法=> String => Request[AnyContent] => Result 添加了parens更容易阅读: => (String => (Request[AnyContent] => Result)) 你可以在REPL中试试这个.例如: scala> def foo(f: => String => Int => Char): Char = f("abcdefgh")(4) foo: (f: => String => (Int => Char))Char 在这个例子中,f是一个nullary函数call-by-name参数,它返回一个函数(让我们调用那个函数g). g是一个接受String参数并返回另一个函数(h)的函数. h是一个接受Int参数并返回Char的函数. 示例调用: scala> foo { s: String => { i: Int => s.charAt(i) } } res0: Char = e 让我们在评估时遍历方法体中每个表达式的类型: > f >类型:String => (Int => Char) > f(“abcdefgh”) >类型:Int =>烧焦 > f(“abcdefgh”)(4) >类型:Char>价值:’e’ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |