Scala为外部作用域创建val



考虑以下对象,

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

如果我在setX中创建val x1,它的作用域将是setX方法。我真正想做的是在方法外部创建一个val,并在方法内部赋值。不使用var是不可能的,还是有其他方法?

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

这就是val ("readonly")和var的区别。

So no: not possible.

如果问题(不是期望的解决方案)得到了更多的解释,可能还有其他方法。

快乐编码。

很难说你真正想要实现什么,但通常转换你的setX方法会奏效:

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

或者您可以创建一个SetOnce类,它持有一个值,并允许设置它只一次…

最新更新