This is a short Scala post to explain what the difference is between val and var. I was showing some Scala code to a co-worker this past week and he was asking what the difference was between val and var. It is quite simple:
val defines a fixed value, it is a read only variable
var defines a mutable variable, this variable can be modified
In Java you would use final to create a variable which would be read only, this is the same as val in Scala.
Let’s look at some very simple Scala code.
object Test {
def main(args: Array[String]) = println("done with main")
var Test1 =5
println("Test1 " + Test1)
Test1 = 6
println("Test1 " + Test1)
}
Running the code above will give the following output
Test1 5
Test1 6
done with main
If you are trying to use val, you will get an error, change var to val and see if you can compile the code
object Test {
def main(args: Array[String]) = println("done with main")
val Test1 =5
println("Test1 " + Test1)
Test1 = 6
println("Test1 " + Test1)
}
Here is the error, the code won’t even compile
Description Resource Path Location Type reassignment to val Test.scala /ScalaTemp/src line 8 Scala Problem
So as you can see, val is read only, while with var you can modify the variable.
If you want to play around with Scala, take a look at Installing Scala 2.10 on Eclipse Juno