Basic Syntax of Scala

val,var,def,lazy val

  • var declares a mutable cell. Analogous to a non-final in Java. Avoid the use of var unless in exceptional circumstances.

  • val declares an immutable cell that is evaluated at its declaration point. Analogous to a final in Java.

  • def declares an immutable cell that is evaluated upon each use. An argument list may follow. Analogous to a method in Java.

  • lazy val declares an immutable cell that is unevaluated until first use.

  • Example (welcome to the Scala interpreter)

    scala> val a = 7
    a: Int = 7
    
    scala> def b = 8
    b: Int
    
    scala> def c(n: Int) = n + 42
    c: (Int)Int
    
    scala> var d = 9
    d: Int = 9
    
    scala> lazy val e = 10
    e: Int = 10