Abi*_*oso 4 scala higher-order-functions
通过Spray 教程,我遇到了这个:
entity(as[Quiz]) { quiz => requestContext =>
val responder = createResponder(requestContext)
createQuiz(quiz) match {
case true => responder ! QuizCreated
case _ => responder ! QuizAlreadyExists
}
}
Run Code Online (Sandbox Code Playgroud)
这条特定的界限是困惑所在:
entity(as[Quiz]) { quiz => requestContext =>
Run Code Online (Sandbox Code Playgroud)
世界上第二个=>标志是什么?这个语法是什么意思,我在哪里可以找到进一步阅读的文档?
如果我把这样的括号括起来,它会更有意义吗?
entity(as[Quiz]) { quiz => (requestContext =>
...
)
}
}
Run Code Online (Sandbox Code Playgroud)
这只是一个带有两个参数的curried函数,并且机械地它是一个返回另一个函数的函数.例:
val test: Int => Int => Int = a => b => a + b // the same as a => (b => a + b)
println(test(2)(3)) //5
Run Code Online (Sandbox Code Playgroud)
您可以将其视为(a, b) => a + b,但具有额外的好处,因此您可以更容易地部分应用它:
val t: Int => Int = test(2)
println(t(3)) // 5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |