基本
変数
変数はvar {変数名}: {型名}
で定義します。
var x: Int = 10
x = 20
println(x) // 20と表示される
val
で変数を定義するとイミュータブル(不変)になり、再代入を禁止できます
以下のコードはコンパイルエラーになります
val x: Int = 10
x = 20 // error: val cannot be reassigned
Kotlinは型推論を備えているため、推論が可能な場所では型の記述を省略することができます。
var x = "hello world"
var y = 20
関数
funを使用して関数を定義できます
Javaとは異なり、関数の返り値の型は引数の括弧の後、コロンに続けて書きます。
関数が値を返さない場合は記述の必要はありません。
fun double(x: Int): Int {
return x * 2
}
fun hello() {
println("hello")
}
val result = double(3)
println(result) // 6
hello() // hello
クラス
クラスはclass
を使って定義できます。
クラス名に続けて、コンストラクタに渡す引数を指定します。
引数にvarやvalを記述するとそのままクラスのプロパティとして扱われます。
以下の例ではnameというプロパティを持つStudentクラスを定義し、インスタンスを作成しています。
class Student(val name: String)
var student = Student("Taro") // インスタンス作成時にnewのようなキーワードは不要です
println(student.name) // getterの定義は不要です
データクラス
class
キーワードの前にdata
を付けるとデータクラスを作成することができます
主にデータを保持することが目的のクラスに使用でき、equals()
, hashCode()
やtoString()
をコンパイラが自動で作成してくれます。
data class Money(val value: Int)
println(Money(100))
上の例ではtoString()
を実装していませんが、データクラスとして定義したのでMoney(value=100)
と表示されます