📑

【超初心者向け】Kotlinの変数について

に公開

そもそも変数とは?

変数はデータを入れておく箱のようなもの。
プログラムの中で何かの値(例えば数値や文字)を扱いたいときに、その値を入れて名前を付けておくことで、あとで、その名前を使って呼び出したり、変えたりできます。

変数の書き方

Kotlinで変数を作るには、2つのキーワードがあります。

キーワード 意味 値を変えられるかどうか
val 定数(読み取り専用) 変更できない
var 変数(読み書き可能) 変更できない

どちらも基本の書き方は同じです。
キーワード 変数の名前 : 型 = 値

お試しコードを書いてみる

変数を実際に使ってみるため、お試しコードを書いてみましょう。
まず、お試しコード用のファイルを作成します。
適当なフォルダを右クリックすると表示されるメニューから、New>Kotlin Class/Fileを選択。

名前を入力し、Fileを選択。

新しいファイルができました。

では、以下のように変数を宣言し、変数をprintln関数で出力してみます。

println関数について

printlnはかっこの中身の文字列や変数をコンソールに出力する関数です。

""(ダブルクォーテーション)に囲まれた中のものは文字列として扱われます。
そして、$付きの変数は変数の中身が文字列として表示されます。
println("名前は$nameです")と設定した場合、コンソールには名前はwancoですと表示されます。

Test.kt
fun main() {
    val name: String ="wanco"
    var age: Int = 5
    val height: Double = 30.55

    name = "wanco2" //このnameはエラーになる
    age = 6
    println("name:$name,age:$age,height:$height")
}

実行するときは、fun mainの左にある▽をクリックします。

実はnameが読み取り専用のvalで宣言されているので、値をwanco2に変更しようとしている部分がエラーになり、実行することはできません。
実行するときは、name = "wanco2"を削除してから実行しましょう。

エラーの様子


ちなみに、Change to 'var'のリンクをクリックすると、親切にキーワードを変更してくれますが、本当にそれでよいかどうかは、確認が必要です。

型推論

Kotlinの変数は以下のように書くとお伝えしましたが、
キーワード 変数の名前 : 型 = 値
型は省略できます。
Kotlinが値を見て、自動的に型を判断してくれます。
型を省略した書き方は以下の通りです。

Test.kt
fun main() {
    val name = "wanco"
    var age = 5
    val height = 170.5

    age = 6
    println("name:$name,age:$age,height:$height")
}

この状態で実行しても、正しい出力結果を得られます。
name:wanco,age:6,height:170.5

関数の引数に変数を設定

では、新しくcalcAdd関数を作成し、かっこの中にInt型の変数aとInt型の変数bを設定し、引数とします。
a+bの結果をresult変数に入れて、result変数を出力することにします。

Test.kt
fun calcAdd(a:Int,b:Int){
    val result = a + b
    println("$a + $b = $result")
}

mainからcalcAddを呼び出します。
呼び出すときに、aとbという引数があるので、それぞれ値を設定しなければいけません。

Test.kt
fun main() {
    calcAdd(a=2,b=5)
}

上記プログラムはこんな動きになります。
1.mainが実行される。
2.mainの中で、calcAddを呼び出し、a=2、b=5を渡す。
3.calcAddは2と5をもらい、新しい変数resultに2+5の結果を入れる。
4.printlnで「2 + 5 =7」と出力。
絵にするとこんな感じです。

初期値を設定しておくこともできる

関数の引数はデフォルト値を設定しておくことも可能です。
calkAddのかっこの中を見ると、aとbの値が2と5で指定されていますね。
デフォルト値が設定されているときは、呼び出し元で引数を指定しなくてもエラーにならず、デフォルト値を使用してくれます。

Test.kt
fun calcAdd(a: Int = 2,b: Int = 5) {    //デフォルト値をa=2、b=5と設定
    val result = a + b
    println("$a + $b = $result")
}

fun main() {
    calcAdd()
}

このコードの場合、結果は「2 + 5 = 7」と出力します。

では、呼び出し元を次のように変更したらどうなるでしょう?

Test.kt
fun main() {
    calcAdd(a=10,b=3)
}

結果は「10 + 3 = 13」と出力します。
つまり、デフォルト値がある場合、引数に何も設定しない場合はデフォルト値が使用され、何か値を設定した場合は、設定した値を使用するということですね!

変数について、なんとなーくわかっていただけると幸いです😊
関数自体も変数のように扱うことができるのですが、また別の機会に!

Discussion