tiran
tiran

Reputation: 2431

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.

Upvotes: 4

Views: 833

Answers (2)

Jens Schauder
Jens Schauder

Reputation: 81940

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 ...

Upvotes: 0

user166390
user166390

Reputation:

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.

Upvotes: 4

Related Questions