スプレー初心者です。私は、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"
}