在Scala中,您可以使用私有变量创建对象,这些变量只能由对象的声明实例访问。
class Counter {
private[this] var value = 0
def isLess( other : Counter) = value < other.value // syntax error
}
为什么这有用?
答案 0 :(得分:5)
如果您需要绝对确保没有其他对象获得对变量的访问权限,即使是同一个类的成员,也会很有用。
我在这里知道的主要案例是当你为一个类创建一个伴随对象而不想阻止伴随对象和类的实例之间的访问。
由于启用了直接字段访问而不是通过访问器方法,因此它也可以是一个小的性能优势。