※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

5. Kotlin 変数 (Variables)

2023年7月4日

概要

変数は、プログラム内でデータを操作するための基本的な構成要素で、データを格納するための名前付きのメモリ領域です。
変数を使用することで、 値を格納し、 名前で参照し、 必要に応じて更新することができます。 変数は、 数値、 文字列、 オブジェクトなど、 さまざまな型のデータを保持できます。

Kotlin の変数は、 プログラムの実行中に値を変更できる変数とできない変数があります。
Kotlin で変数を定義するには、以下のキーワードを使用します。

  • var : 最初に値を代入した後に、再度代入することが可能(mutable) な変数です。variable の略
  • val : 一度値を代入した後は、再度代入することが不可能(immutable) な変数です。 value の略。Read-Only と表現してもよいかもしれません。

構文

Kotlin で変数を宣言するには、val または var キーワードを使用し、変数名と型を指定します。
変数の初期化は必須ではありませんが、 初期化されていない変数を使用しようとするとコンパイルエラーが発生します。
変数名は任意に決めることができます。
ただし変数名に用いることができないキーワード(予約語)があります。キーワードについては別ページに記載しています。



変数名の宣言は、以下の形で行います。

var 変数名 : 変数の型 = 初期値
val 変数名 : 変数の型 = 初期値

var language : String = "Kotlin"
val pi : Double = 3.1415

初期値を代入する場合は、型の宣言は省略することができます。
これは Kotlin が型推論という機能によって可能となっています。

var language = "Kotlin"  // 型は Strings と推論される
var pi = 3.1415  // 型は Double と推論される

変数宣言のみで初期化しない場合は、: に続けて変数の型を指定する必要があります。

var language : String
val pi : Double

その後、値を代入できます。

language = "Kotlin"
pi = 3.1415

変数の値の更新

var キーワードで宣言された変更可能な変数は、 代入演算子 (=) を使用して値を更新できます

fun main() {
   var language = "Kotlin"
   println(language)
   
   language = "Java"
   println(language)
}

コンパイル

kotlinc var1.kt -include-runtime -d var1.jar

実行

java -jar var1.jar

実行結果

Kotlin
Java

Kotlin Playground で実行


一方、val で宣言した値は最初に決めた値から書き換えることができません。

変更しようとするとコンパイル時にエラーになります。

fun main() {
   val language = "Kotlin"
   println(language)
   
   language = "Java"
   println(language)
}

コンパイル

kotlinc val1.kt -include-runtime -d val1.jar

コンパイルエラー

val1.kt:5:4: error: val cannot be reassigned
   language = "Java"
   ^

参考情報

kotlinlang.org での変数に関連する情報は以下にあります。

https://kotlinlang.org/docs/basic-syntax.html#variables