1.3. Wartości niezmienne
Za pomocą słowa kluczowego val można w języku Scala definiować wartości niezmienne. Definicja poniższej wartości jest składniowo podobna, z wyjątkiem innego słowa kluczowego, do wcześniejszej definicji zmiennej.
scala> val c: Int = 6 c: Int = 6
![]() | W książce celowo używane jest określenie wartość niezmienna zamiast mogącego się nasuwać określenia stała. Jest tak dlatego, że oprócz wartości niezmiennych, Scala umożliwia również definiowanie stałych. Różnica między nimi jest opisana w punkcie 5.15. |
W przeciwieństwie do zmiennych, wartościom zainicjalizowanym za pomocą val nie może być przypisana nowa wartość. Próba wykonania takiego przypisania kończy się komunikatem błędu informującym nas, że operacja jest niedozwolona.
scala> c = 7
<console>:11: error: reassignment to val
c = 7
^
W następnym przykładzie dodajemy do c wartość 2.
scala> val d = c + 2 d: Int = 8
Kompilator poradził sobie i tym razem, mimo braku jawnego określenia typu definiowanej wartości. Wartość c oraz liczba 2 są typu Int i ich suma jest także typu Int. Wobec tego zdefiniowana wartość również ma typ Int.

