基本

変数

変数は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)と表示されます