小编use*_*790的帖子

没有vars的scala编程

在我看来,这个概念已经足够可以理解了.

我想做这样的事情(像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

2
推荐指数
2
解决办法
527
查看次数

标签 统计

scala ×1