Scalaにおける「定数」は、再代入ができない不変の値を指し、valキーワードを用いて定義されます。ここではScalaにおける定数の特徴、使い方、可変変数との違いについて詳しく説明します。
1. 定数の宣言方法(valキーワード)
valキーワード)Scalaでは、valを使って定数(不変変数)を宣言します。
-
piもnameも一度値が代入されると、以後は変更できません。 -
型推論が有効なので、型を明示しなくても自動的に推測されます。
明示的に型を指定することも可能です:
2. 再代入不可(不変)
valで定義された定数には再代入ができません。以下のようなコードはコンパイルエラーになります:
これはイミュータブル(immutable)なプログラミングスタイルを促進し、副作用の少ない安全なコードを書くのに役立ちます。
3. 可変変数(var)との違い
var)との違い| 特徴 | val(定数) |
var(変数) |
|---|---|---|
| 再代入 | 不可 | 可能 |
| 推奨スタイル | 関数型プログラミングに推奨 | 状態を変える必要がある場合に使用 |
| 例 | val x = 10 |
var y = 20 |
Scalaでは可能な限りvalを使うことが推奨されており、状態変化を避ける設計が重視されます。
4. 複雑な型のval
valvalはオブジェクト、リスト、関数などにも使えます。
注意点として、参照は不変でも中身の変更は可能な場合があります(特にコレクションの場合)。例えば:
5. 定数の使用例
このように、valは一度代入した値を変更せずに、後続の計算や処理に安心して使うことができます。
まとめ
-
valは定数(再代入不可の変数)を定義するために使用。
-
型は自動推論されるが、明示的に指定も可能。
-
可能な限りvalを使用するのがScalaのベストプラクティス。
-
オブジェクトの中身の変更には注意(参照は不変でも、内容は可変の場合あり)。
生成日:2025/05/04