Scala

Scalaのvar, valとmutable, immutableについてのまとめ

この記事は?

Scalaを勉強していて、var,val,mutable,immutableの組み合わせで理解に苦しんでいたところ、
@takc923さんの
scalaのvar, valとmutable, immutableについて

を読み、こちらの記事がとても参考になったのですが、最終的なまとめがなかったので、var,valとmutable,immutableの組み合わせのまとめを書こうと思った次第です。

前提

上の記事にもありますが、この前提を理解する必要があります。

var: 参照を変えることができる
val: 参照を変えることはできない
mutable: 要素変更後も参照が変わらない
immutable: 要素変更後は新しい参照を返す

組み合わせのまとめ

var & mutable:   参照を変えられるし要素変更後の参照は変わらないのでエラーにならない
var & immutable: 参照を変えられるので、要素変更後に新しい参照が返ってきてもエラーにならない
val & mutable:   参照は変えられないが、要素変更後の参照は変わらないのでエラーにならない
val & immutable: 参照は変えられないが、要素変更後に新しい参照が返そうとするのでエラーになる