Scala var最佳做法-封装

问题描述 投票:0回答:1

例如,我试图了解在scala中使用var的最佳实践是什么

class Rectangle() {
 var x:Int = 0
}

或类似的东西:

class Rectangle() {
 private var _x:Int = 0
 def x:Int = _x
 def x_(newX:Int):Unit = _x=newX
}

哪个可以被认为是更好的?为什么?谢谢!

scala class private encapsulation
1个回答
0
投票

正如Luis在评论中已经解释的那样,只要您能够避免var,就应该避免使用var,而像您这样的简单案例就是可以使用以下类似方法更好地设计的一种:

object Rectangle {
   def apply(x: Int): Int = Rectangle(x)
}
case class Rectangle(x: Int)

当您无法避免在Scala中使用var时,这是非常罕见的情况。 Scala的一般成语是:“使变量不可变,除非有充分的理由不这样做”

© www.soinside.com 2019 - 2024. All rights reserved.