#2 Scalaで学ぶ変数とデータ型の基本

Scalaの変数には、Kotlinと似た「val」「var」という考え方があります。この記事では、Scalaにおける変数の作り方と、代表的なデータ型について解説します。

valとvarの使い分け

Scalaでは、変更できない変数にはval、変更できる変数にはvarを使います。

val name = "太郎"
var age = 20

Scalaでは、値を変更しない「val」を積極的に使うことが強く推奨されています。これは、Scalaが「関数型プログラミング」という、値をなるべく変更しない考え方を大切にしている言語だからです。

代表的なデータ型

Scalaの基本的なデータ型には、次のようなものがあります。

  • 整数(Int)
  • 浮動小数点数(Double)
  • 文字列(String)
  • 真偽値(Boolean)

ScalaもJVM上で動く言語のため、これらの型はJavaのデータ型と対応関係にあります。

型推論という便利な仕組み

Scalaには型推論があり、代入する値から型を自動で判断してくれます。そのため、型名を省略した書き方が一般的です。型を明示したい場合は、次のように書きます。

val age: Int = 20
val name: String = "太郎"

大きな数値を表す型

通常のIntで扱いきれない大きな整数を扱いたい場合はLong、より精密な小数の計算が必要な場合はBigDecimalという型も用意されています。

val population: Long = 8000000000L
val price: BigDecimal = BigDecimal("19.99")

金額の計算など、誤差が許されない場面ではDoubleではなくBigDecimalを使うのが安全です。

lazy valで評価を遅らせる

valの前にlazyを付けると、実際に使われるまで初期化を遅らせられます。

lazy val heavyValue = {
    println("計算中...")
    42
}
println("準備完了")
println(heavyValue) // ここで初めて計算が実行される

初期化コストが高い値を、実際に必要になるまで計算しないようにする際に便利です。

Scalaならではの注意点

Scalaでは「値を変更しない」ことが設計の中心にあるため、他の言語のようにvarで変数をどんどん書き換えるスタイルに慣れていると、最初はやや窮屈に感じるかもしれません。しかし、値が途中で変わらないと保証されていることは、大きなプログラムほどバグを見つけやすくするという利点があります。

まとめ

Scalaの変数はvalを基本とし、値をなるべく変更しない書き方が推奨されています。LongやBigDecimalのような用途別の型も含め、この考え方こそがScalaが「関数型」と呼ばれる理由のひとつです。


本ページはプロモーションを含みます。

参考書籍(PR)

Scalaをもっと学びたい方には「実践Scala入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本