主な変数の定義
valとvar
- val→再代入で不可
- var→再代入可能
例
val a: String = "foo"
a = "bar" // エラーになる
var b: String = "foo"
b = "bar" // エラーにならない
出来るだけvalを使い、必要な場合のみvarを使うのがベターらしい
nullable
nullを代入できる変数とできない変数は、別の型として区別される。
例えば、String型であれば最後に?をつけてString?型として宣言しない限り、
nullを代入することはできません。
例
val a: String = null // エラーになる
val b: String? = null // エラーにならない
このように、意図しないnullの代入はコンパイル時にエラーとなるため、
ぬるぽを防ぐ効果があります。
値を返すif式
Kotlinのifはif文としてだけでなくif式としても使える為、
値を返すことが出来ます。
このため簡潔に書ける場面が多くて便利です。
例(Javaだとこうなる)
String a;
if(b) {
a = "foo";
} else {
a = "bar";
}
例(Kotlinならこのように書ける)
val a = if(b) "foo" else "bar"
名前付き引数、デフォルト引数
Kotlinでは、引数に名前をつけたり、デフォルト値を与えることができるため、
オーバーロード(多重定義、引数や戻り値が異なる同一名称のメソッドを複数定義すること)
を使わずに済む。
例
// middleNameにはデフォルト値を設定
fun fullName(firstName: String, middleName: String = "", lastName: String)
// 必要な引数のみ指定して渡すことができる
val name = fullName(firstName = "Jun", lastName = "Ikeda")