scala为外部范围创建val

时间:2011-09-15 04:27:41

标签: scala

考虑以下对象,

    object A {
        def setX(x:Int) = {
            val x1 = x
        }

        def getx() = x1
    }

如果我在setX中创建val x1,那么范围将是方法setX。我真正想做的是在方法之外创建一个val并在方法中分配值。不使用var是不可能的,还是有办法做到这一点?

如果可以,请给我一个例子。

2 个答案:

答案 0 :(得分:4)

这是val(“只读”)和var之间的区别。

所以不:不可能。

如果更多地解释问题(不是所需的解决方案),可能会有其他方法。

快乐的编码。

答案 1 :(得分:0)

很难说,你真正希望实现的目标,但经常转换你的setX方法可以解决问题:

   def setX(x:Int) = {
       x
   }

   val x1 = setX(x)

或者你可以创建一个SetOnce类来保存一个值并允许它恰好设置一次......