我是新来喷涂的。我使用过几种奇怪的(对我而言)编程语言,如 python、JQuery 等……有了它们,我至少可以理解一些代码段的作用。不幸的是,使用 Spray,我什至无法阅读和理解一个简单的代码。
有人可以帮我阅读(用文字描述,代码做什么)以下简单的代码块。
注意:我知道非常高级,这将选择 url 参数并将它们添加在一起。但我想要的是,清楚地理解这个代码块水晶,因为我可以教给别人。HNil, Directive1, Directive1, ::
对我来说有些奇怪。
val twoIntParameters: Directive[Int :: Int :: HNil] =
parameters('a.as[Int], 'b.as[Int])
val myDirective: Directive1[String] =
twoIntParameters.hmap {
case a :: b :: HNil => (a + b).toString
}
// test `myDirective` using the testkit DSL
Get("/?a=2&b=5") ~> myDirective(x => complete(x)) ~> check {
responseAs[String] === "7"
}