eug*_*ied 2 scala spray spray-routing
从spray.io文档页面:
color提取参数“ color”的值作为字符串
color.?提取参数“ color”的可选值作为Option [String]
amount.as[Int]将参数“ amount”的值提取为Int,就需要一个匹配的反序列化器才能使其正常工作(另请参阅解组)
那么如何解析可选Int值?喜欢的东西amount.?.as[Int]似乎并没有工作时。
您可以在此处查看详细信息:https : //github.com/spray/spray/blob/76ab89c25ce6d4ff2c4b286efcc92ee02ced6eff/spray-routing/src/main/scala/spray/routing/directives/NameReceptacle.scala
case class NameReceptacle[A](name: String) {
def as[B] = NameReceptacle[B](name)
def as[B](deserializer: FSOD[B]) = NameDeserializerReceptacle(name, deserializer)
def ? = as[Option[A]]
def ?[B](default: B) = NameDefaultReceptacle(name, default)
def  = RequiredValueReceptacle(name, requiredValue)
}
Run Code Online (Sandbox Code Playgroud)
简单的语法是
"amount".as[Option[Int]]
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有语法糖可以NameRecaptable直接为选项类型创建一个,但是您可以分两个步骤进行操作:
"amount".as[Int].as[Option[Int]]
Run Code Online (Sandbox Code Playgroud)
?是的别名NameRecaptable[A].as[Option[A]],因此您可以使用以下代码(请注意postfix运算符的语法):
"amount".as[Int]?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |