Kotlin 変数

変数はデータ値を格納するためのコンテナです。変数を作成するにはvarまたはvalを使用し、等号(=)で値を割り当てます。

文法

var 変数名 = 値
val 変数名 = 値

var name = "John"
val birthyear = 1975

println(name)          // 名前の値を出力
println(birthyear)     // 生年の値を出力

varキーワードで宣言された変数は変更できますが、val変数は変更できません。

変数の型

他の多くのプログラミング言語とは異なり、Kotlinの変数は特定の型(例えば、テキスト用のStringや数字用のInt)を宣言する必要がありません。以下の例では、テキストを格納する変数と数字を格納する変数を作成します。

var name = "John"      // 文字列(テキスト)
val birthyear = 1975   // 整数(数字)

println(name)          // 名前の値を出力
println(birthyear)     // 生年の値を出力

Kotlinは「John」が文字列(テキスト)であり、1975が整数(数字)の変数であることを自動で理解することができます。しかし、もし必要であれば型を指定することも可能です。

var name: String = "John" // 文字列
val birthyear: Int = 1975 // 整数

println(name)
println(birthyear)

値を割り当てずに変数を宣言し、後で値を割り当てることもできます。ただし、これは型を指定した場合にのみ可能です。

以下のコードは正常に動作します:

var name: String
name = "John"
println(name)

以下のコードはエラーを生成します:

var name
name = "John"
println(name)

valに関する注意

valキーワードで変数を作成すると、その値は変更/再割り当てできません。

以下の例はエラーを生成します:

val name = "John"
name = "Robert"  // エラー(valは再割り当てできません)
println(name)

varを使用すると、値をいつでも変更できます。

var name = "John"
name = "Robert"
println(name)

いつvalを使用するか

valキーワードは、例えばPI(3.14159…)のように常に同じ値を保持する変数に使用すると便利です。

val pi = 3.14159265359
println(pi)

変数の表示

上記の例で見たように、println()メソッドは変数を表示するために頻繁に使用されます。テキストと変数を組み合わせるには、+文字を使用します。

val name = "John"
println("Hello " + name)

また、+文字を使用して変数を他の変数に追加することもできます。

val firstName = "John "
val lastName = "Doe"
val fullName = firstName + lastName
println(fullName)

数値の場合、+文字は数学の演算子として機能します。

val x = 5
val y = 6
println(x + y) // x + yの値を出力

上記の例では次のことを行っています。

  • xは値5を格納します
  • yは値6を格納します
  • 次にprintln()メソッドを使用してx + yの値を表示します。結果は11です。

変数名

変数は短い名前(例えばxやy)や、より説明的な名前(年齢、合計、総容量など)を持つことができます。Kotlinの変数に関する一般的なルールは次のとおりです:

  • 名前には文字、数字、アンダースコア、およびドル記号を含めることができます。
  • 名前は文字で始める必要があります。
  • 名前は$および_で始めることもできます(ただし、このチュートリアルでは使用しません)。
  • 名前は大文字と小文字を区別します(myVarmyvarは異なる変数です)。
  • 名前は小文字で始めるべきで、空白を含むことはできません。
  • 予約語(varStringなどのKotlinキーワード)は名前として使用できません。

キャメルケース変数

上記の例でfirstNamelastNameを変数名として使用したことに気づいたかもしれません。これは「キャメルケース」と呼ばれ、異なる単語を含む変数名を読みやすくするために良い習慣とされています。例えば、myFavoriteFoodrateActionMoviesなどです。