您能否向我解释一下如何编写函数文字的缩短版本?
我正在阅读这个Spray 教程,其中包含以下代码
val route: Route = { ctx => ctx.complete("yeah") }
被压缩到
val route: Route = complete("yeah")
其中complete是 RouteDirectives 的功能。
我无法在我的代码中重现相同的内容
class Test
{
def testFunc(value : Int) {
println(value)
}
}
type MyType = Test => Unit
val asd : MyType = _.testFunc(10)
asd(new Test)
如果我val asd : MyType = testFunc(10)
改为写,我(显然)会出错
error: type mismatch;
found : Int(10)
required: Int => Unit
val asd : MyType = testFunc(10)
所以我想也许“完整”也是一个有apply
方法的对象。确实有以下作品
val route: Route = complete.apply("yeah")
但我没有看到一个物体。在调试器中,它按RouteDirectives.complete
预期进入。
为什么 ?我错过了什么?