找不到Playframework、scala案例类和属性
在scala中运行playframework时,我的行为非常奇怪。我使用anorm作为数据库访问层,因此我开始编写一些代码,看到了非常奇怪的scala编译器行为 这是正在工作的代码:找不到Playframework、scala案例类和属性,scala,playframework,playframework-2.0,case-class,Scala,Playframework,Playframework 2.0,Case Class,在scala中运行playframework时,我的行为非常奇怪。我使用anorm作为数据库访问层,因此我开始编写一些代码,看到了非常奇怪的scala编译器行为 这是正在工作的代码: case class P_Page_Control(Control_ID:Int, Client_ID:String, cContent: String, Page_ID: Int,
case class P_Page_Control(Control_ID:Int,
Client_ID:String,
cContent: String,
Page_ID: Int,
Language_ID: Int,
InsertTime: Date,
ChangeTime: Option[Date],
IsDeleted: Boolean)
以及:
目前没有编译错误。很好。
但当我更改属性名称时,出现了错误:
object P_Page_Control { val parser = {
get[Int]("Control_ID") ~
get[String]("Client_ID") ~
get[String]("Content") ~
get[Int]("Page_ID") ~
get[Int]("Language_ID") ~
get[Date]("InsertTime") ~
get[Option[Date]]("ChangeTime") ~
get[Boolean]("IsDeleted") map {
case A_B ~ b ~ c ~ d ~ e ~ f ~ g ~ h =>
P_Page_Control(A_B, b, c, d, e, f, g, h)
}}}
因为我是Scala的新手,所以我认为\uu
是一些神奇的关键词或其他神奇的东西
因此,我将属性名更改为aBB_AccAd
,但没有编译错误
oops
下一个有趣的事情是:我将它重命名为aabbdddsadasdasaaffeee
,我再次看到编译错误。
那么,是什么促使Scala对某些文本集抛出编译错误呢
这是错误还是功能?:-)
模式中以大写字母开头的名称被解释为引用提取器的变量或对象名称(具有
unapply
或unplyseq
方法的对象)。由于您尚未声明这样的变量或对象,Scala找不到它并抛出一个错误。谢谢您快速而好的回答。因此,我发现了Scala的一个新特性:-)
object P_Page_Control { val parser = {
get[Int]("Control_ID") ~
get[String]("Client_ID") ~
get[String]("Content") ~
get[Int]("Page_ID") ~
get[Int]("Language_ID") ~
get[Date]("InsertTime") ~
get[Option[Date]]("ChangeTime") ~
get[Boolean]("IsDeleted") map {
case A_B ~ b ~ c ~ d ~ e ~ f ~ g ~ h =>
P_Page_Control(A_B, b, c, d, e, f, g, h)
}}}