【超初心者向け】Kotlinの変数について
そもそも変数とは?
変数はデータを入れておく箱のようなもの。
プログラムの中で何かの値(例えば数値や文字)を扱いたいときに、その値を入れて名前を付けておくことで、あとで、その名前を使って呼び出したり、変えたりできます。
変数の書き方
Kotlinで変数を作るには、2つのキーワードがあります。
キーワード | 意味 | 値を変えられるかどうか |
---|---|---|
val | 定数(読み取り専用) | 変更できない |
var | 変数(読み書き可能) | 変更できない |
どちらも基本の書き方は同じです。
キーワード 変数の名前 : 型 = 値
お試しコードを書いてみる
変数を実際に使ってみるため、お試しコードを書いてみましょう。
まず、お試しコード用のファイルを作成します。
適当なフォルダを右クリックすると表示されるメニューから、New>Kotlin Class/Fileを選択。
名前を入力し、Fileを選択。
新しいファイルができました。
では、以下のように変数を宣言し、変数をprintln関数で出力してみます。
println関数について
printlnはかっこの中身の文字列や変数をコンソールに出力する関数です。
""(ダブルクォーテーション)に囲まれた中のものは文字列として扱われます。
そして、$付きの変数は変数の中身が文字列として表示されます。
println("名前は$nameです")と設定した場合、コンソールには名前はwancoですと表示されます。
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が値を見て、自動的に型を判断してくれます。
型を省略した書き方は以下の通りです。
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変数を出力することにします。
fun calcAdd(a:Int,b:Int){
val result = a + b
println("$a + $b = $result")
}
mainからcalcAddを呼び出します。
呼び出すときに、aとbという引数があるので、それぞれ値を設定しなければいけません。
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で指定されていますね。
デフォルト値が設定されているときは、呼び出し元で引数を指定しなくてもエラーにならず、デフォルト値を使用してくれます。
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」と出力します。
では、呼び出し元を次のように変更したらどうなるでしょう?
fun main() {
calcAdd(a=10,b=3)
}
結果は「10 + 3 = 13」と出力します。
つまり、デフォルト値がある場合、引数に何も設定しない場合はデフォルト値が使用され、何か値を設定した場合は、設定した値を使用するということですね!
変数について、なんとなーくわかっていただけると幸いです😊
関数自体も変数のように扱うことができるのですが、また別の機会に!
Discussion