当我在 scala 中运行 playframework 时,我的行为非常奇怪。我使用 anorm 作为数据库访问层,因此我开始编写一些代码,我看到了非常奇怪的 scala 编译器行为。
这是有效的代码:
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 ~ c ~ d ~ e ~ f ~ g ~ h =>
P_Page_Control(a, b, c, d, e, f, g, h)
}}}
目前没有编译错误。工作正常。但是当我更改属性名称时出现错误:
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 的新手,我认为_
这是一些神奇的关键字或其他神奇的东西。
所以我将属性名称更改为aBB_AccAd
但没有编译错误。
哎呀...
下一个有趣的事情:我将其重命名为AAbbdddsadasdasAAFFFFeeee
,我再次看到编译错误。那么是什么促使 Scala 为某些字面量抛出编译错误呢?
这是错误还是功能?:-)