我正在尝试为包含单个属性的案例类隐式创建JSON读取,但我收到错误"Reads [Nothing]不符合预期类型".这是代码:
import play.api.libs.functional.syntax._
import play.api.libs.json.Reads._
import play.api.libs.json.{JsPath, Json, Reads}
case class Feedback(message: String)
object Feedback {
implicit val reads: Reads[Feedback] = (
(JsPath \ "message").read[String](maxLength[String](2000))
)(Feedback.apply _)
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?如果我向case类添加额外的属性,并且多个.read调用与and它连接起作用......
假设我想使用Scala的模式匹配编写以下函数:
def foo(num: Int): Int = {
num match {
case 1 => 0
case x if x%2 == 0 => 1
case _ => _
}
}
Run Code Online (Sandbox Code Playgroud)
但当然我得到了该行的编译错误 case _ => _
我知道我可以通过改变线来解决它:case x=>x但是为什么Scala的模式匹配不允许我做那样的事情?这对我来说就像是说我不在乎什么只是归还它.