Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Scala和Anorm播放:无法创建简单的解析器_Scala_Playframework 2.0_Anorm - Fatal编程技术网

为Scala和Anorm播放:无法创建简单的解析器

为Scala和Anorm播放:无法创建简单的解析器,scala,playframework-2.0,anorm,Scala,Playframework 2.0,Anorm,这里应该有一些简单的东西,尽管我完全错过了,因为我是Scala和Play的noob。代码如下: case class ExceptionInfo(ExceptionType: String, Message: String, StackTrace: Seq[String]) object ExceptionInfo { val excInfoParser = { get[String]("ExceptionInfo.ExceptionType") ~

这里应该有一些简单的东西,尽管我完全错过了,因为我是Scala和Play的noob。代码如下:

case class ExceptionInfo(ExceptionType: String, Message: String, StackTrace: Seq[String])

object ExceptionInfo
    {
      val excInfoParser = {
        get[String]("ExceptionInfo.ExceptionType") ~ 
        get[String]("Message") ~ 
        get[String]("ExceptionInfo.StackTrace") map {
          case ExceptionType ~ Message ~ StackTrace => ExceptionInfo(ExceptionType, Message, StackTrace.split("\r\n"))
        }
      }
    }
这不会编译,输出如下:

Description Resource            Path                Location                        Type
not found: value ExceptionType  Application.scala   /testme/app/controllers line 40 Scala Problem
not found: value Message        Application.scala   /testme/app/controllers line 40 Scala Problem
not found: value StackTrace     Application.scala   /testme/app/controllers line 40 Scala Problem
not found: value ExceptionType  Application.scala   /testme/app/controllers line 40 Scala Problem

提前谢谢

用小写字母命名变量时应该有效:

case exceptionType ~ message ~ stackTrace => ExceptionInfo(exceptionType, message, stackTrace.split("\r\n"))

小写是将要绑定的变量(您正在寻找的)与要匹配的常量区分开来的地方。有关更多信息,请参见和。

您好,谢谢您的回答。那么所有的case变量(在=>的左边)都必须用小写字母命名?这是否也适用于
get[String](“ExceptionInfo.ExceptionType”)
?我的意思是,我应该把它重命名为
get[String](“ExceptionInfo.exceptionType”)
?或者Anorm如何匹配字符串和那些大小写变量?正确,大小写变量需要以小写开头。最好坚持一种命名约定,在Scala中,使用camelCase命名字段。至于数据库字段,有更大的灵活性:它们的名称取决于您。Anorm只关心类型([String]、[Int]等)和顺序(按“~”)。