简体   繁体   中英

scala create val for outer scope

Consider following object,

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

        def getx() = x1
    }

If I create val x1 inside setX that's scope will be the method setX. what I really want to do is create a val outside the method and assign the value inside the method . Is it impossible without using var, or is there any way to do it?

Please send me an example if you can.

That is sort of the difference between val ("readonly") and var .

So no: not possible.

If the problem (not the desired solution) is explained more, there might be alternative approaches.

Happy coding.

Its hard to tell, what you actually want to achieve, but often converting your setX method does the trick:

   def setX(x:Int) = {
       x
   }

   val x1 = setX(x)

or you could create a SetOnce class which holds a value and allows to set it exactly once ...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM