在我看来,这个概念已经足够可以理解了.
我想做这样的事情(像java一样):
trait PersonInfo {
var name: Option[String] = None
var address: Option[String] = None
// plus another 30 var, for example
}
case class Person() extends PersonInfo
object TestObject {
def main(args: Array[String]): Unit = {
val p = new Person()
p.name = Some("someName")
p.address = Some("someAddress")
}
}
Run Code Online (Sandbox Code Playgroud)
所以我可以更改名称,地址等...
这很好用,但问题是,在我的程序中,我最终将所有内容都视为变量.据我所知,val在scala中是"首选".val如何在这种类型的示例中工作,而不必在每次更改其中一个参数时重写所有30多个参数?
也就是说,我可以
trait PersonInfo {
val name: Option[String]
val address: Option[String]
// plus another 30 val, for example
}
case class Person(name: Option[String]=None, address: Option[String]=None, ...plus another 30.. ) …Run Code Online (Sandbox Code Playgroud) scala ×1