考虑以下对象,
object A {
def setX(x:Int) = {
val x1 = x
}
def getx() = x1
}
如果我在setX中创建val x1,那么范围将是方法setX。我真正想做的是在方法之外创建一个val并在方法中分配值。不使用var是不可能的,还是有办法做到这一点?
如果可以,请给我一个例子。
答案 0 :(得分:4)
这是val
(“只读”)和var
之间的区别。
所以不:不可能。
如果更多地解释问题(不是所需的解决方案),可能会有其他方法。
快乐的编码。
答案 1 :(得分:0)
很难说,你真正希望实现的目标,但经常转换你的setX
方法可以解决问题:
def setX(x:Int) = {
x
}
val x1 = setX(x)
或者你可以创建一个SetOnce
类来保存一个值并允许它恰好设置一次......