1
這裏應該有一些簡單的東西,儘管我完全忽略它,因爲我是Scala和Play的noob。下面的代碼:爲Scala和Anorm玩:不能創建簡單的解析器
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變量(在=>的左邊)都必須用小寫來命名?這是否也適用於'get [String](「ExceptionInfo.ExceptionType」)'?我的意思是,我應該將它重命名爲'get [String](「ExceptionInfo.exceptionType」)?或者Anorm如何匹配字符串和那些大小寫變量? – Haspemulator 2013-04-12 08:44:47
正確,個案變量需要以小寫字母開頭。最好遵守一個命名約定,並且在Scala中它使用camelCase命名字段。就數據庫領域而言,它具有更大的靈活性:取決於您的名稱。 Anorm只關心類型([String],[Int]等)和順序(用「〜」)。 – 2013-04-12 13:01:10