【发布时间】:2012-01-09 07:58:49
【问题描述】:
考虑以下对象,
object A {
def setX(x:Int) = {
val x1 = x
}
def getx() = x1
}
如果我在 setX 中创建 val x1,那么它的作用域就是方法 setX。我真正想做的是在方法外部创建一个 val 并在方法内部分配值。不使用var是不可能的,或者有什么办法吗?
如果可以的话,请给我一个例子。
【问题讨论】:
-
如果 getx() 在 setX() 之前被调用,你想发生什么?有很多方法可以做我认为您正在尝试做的事情,但是您的示例基本上是要求没有可变状态的可变状态。
-
当您调用
setX两次时会发生什么?val是否应该更改?坏的。它应该被忽略吗?也很糟糕。它应该导致错误吗?可能是最好的,但仍然不是很好。 -
其实,这是一个scalaquery项目,我不想在这个例子中放一个乱七八糟的scalaquery代码,这个方法是设置数据库,我可以保证,setX被调用一次运行时。还是谢谢你。
标签: scala