这个语法叫什么?它在 Scala 文档中的何处进行了解释?
What is this syntax called? And where is it explained in the Scala documentation?
通过 tutorial Spray,我遇到了这个:
entity(as[Quiz]) { quiz => requestContext =>
val responder = createResponder(requestContext)
createQuiz(quiz) match {
case true => responder ! QuizCreated
case _ => responder ! QuizAlreadyExists
}
}
这一行是混淆所在:
entity(as[Quiz]) { quiz => requestContext =>
第二个=>
符号到底是什么???
这个语法是什么意思,我在哪里可以找到进一步阅读的文档?
如果我这样加上括号,是不是更有意义?
entity(as[Quiz]) { quiz => (requestContext =>
...
)
}
}
这只是一个带有两个参数的柯里化函数,从机械上讲,它是一个 returns 另一个函数的函数。示例:
val test: Int => Int => Int = a => b => a + b // the same as a => (b => a + b)
println(test(2)(3)) //5
您可以将其视为 (a, b) => a + b
,但它还有一个额外的好处,因此您可以更轻松地部分应用它:
val t: Int => Int = test(2)
println(t(3)) // 5
通过 tutorial Spray,我遇到了这个:
entity(as[Quiz]) { quiz => requestContext =>
val responder = createResponder(requestContext)
createQuiz(quiz) match {
case true => responder ! QuizCreated
case _ => responder ! QuizAlreadyExists
}
}
这一行是混淆所在:
entity(as[Quiz]) { quiz => requestContext =>
第二个=>
符号到底是什么???
这个语法是什么意思,我在哪里可以找到进一步阅读的文档?
如果我这样加上括号,是不是更有意义?
entity(as[Quiz]) { quiz => (requestContext =>
...
)
}
}
这只是一个带有两个参数的柯里化函数,从机械上讲,它是一个 returns 另一个函数的函数。示例:
val test: Int => Int => Int = a => b => a + b // the same as a => (b => a + b)
println(test(2)(3)) //5
您可以将其视为 (a, b) => a + b
,但它还有一个额外的好处,因此您可以更轻松地部分应用它:
val t: Int => Int = test(2)
println(t(3)) // 5