【发布时间】:2020-04-04 04:29:08
【问题描述】:
例如,我试图了解在 scala 中使用 vars 的最佳做法是什么
class Rectangle() {
var x:Int = 0
}
或者类似的东西:
class Rectangle() {
private var _x:Int = 0
def x:Int = _x
def x_(newX:Int):Unit = _x=newX
}
哪一个可以被认为是更好的?为什么? 谢谢!
【问题讨论】:
-
第二个相当于第一个。在您可能希望对 read 提供比写入更广泛的可见性的情况下,第二个可能会更好。但是,最佳实践始终是根本不使用一个,但如果需要,保持范围尽可能小,所以恕我直言,我会选择第二个并改用
private[this]。 -
没有实际用例很难说,因为你应该使用 case class 或 vals 或 vars 所以它真的取决于用例。根据您的问题,我将使用案例类 Rectangle(x:Int)
标签: scala class private encapsulation