Kotlinの文法について

採用はこちら

Kotlinは、JetBrainsが開発した静的型付けプログラミング言語です。

Googleは、Androidアプリ開発でKotlinを公式にサポートしており、現在はAndroid開発の主要言語として広く使われています。

またKotlinは、Javaと高い相互運用性を持ち、Javaのライブラリをそのまま利用できる点も特徴です。

Kotlinの文法は次の要素を理解すると全体像がつかめます。

  1. 変数と定数
  2. データ型
  3. 関数
  4. 条件分岐
  5. ループ
  6. クラスとオブジェクト
  7. null安全
  8. コレクション
  9. ラムダ式
  10. 拡張関数

それぞれ詳しく説明します。

目次

変数と定数

Kotlinでは変数宣言に varval を使います。

var(再代入可能な変数)

var name = "Taro"
name = "Jiro"

var は値を変更できます。

val(再代入できない変数)

val age = 20

val は再代入できません。

ただし、参照先のオブジェクトがミュータブルな場合は中身の変更は可能です。

val list = mutableListOf(1, 2)
list.add(3)   // これは可能

つまり val は「再代入できない参照」を意味します。

型指定

Kotlinには型推論があるため、多くの場合型を書かなくてもよいです。

val name = "Taro"
val age = 20

型を明示する場合は次のように書きます。

val name: String = "Taro"
val age: Int = 20

データ型

Kotlinの基本的な型は次の通りです。

説明
Int整数
Long長整数
Double倍精度浮動小数
Float単精度浮動小数
Boolean真偽値
Char文字
String文字列

val number: Int = 10
val pi: Double = 3.14
val isActive: Boolean = true

文字列テンプレート

Kotlinでは文字列の中に変数や式を埋め込めます。

val name = "Taro"
println("Hello $name")

式も書けます。

val a = 10
val b = 20

println("合計は ${a + b}")

関数

関数は fun キーワードで定義します。

基本形

fun greet() {
    println("Hello")
}

引数付き

fun greet(name: String) {
    println("Hello $name")
}

戻り値あり

fun add(a: Int, b: Int): Int {
    return a + b
}

式形式の関数

1行の場合は次のように書けます。

fun add(a: Int, b: Int) = a + b

条件分岐

Kotlinでは ifが式として使える点が特徴です。

基本

val age = 20

if (age >= 20) {
    println("成人")
} else {
    println("未成年")
}

値を返すif

val result = if (age >= 20) "成人" else "未成年"

when式

when は条件分岐を行う構文で、Javaの switch より柔軟です。

val num = 2

when (num) {
    1 -> println("one")
    2 -> println("two")
    else -> println("other")
}

範囲条件も書けます。

when (num) {
    in 1..10 -> println("1〜10の範囲")
}

ループ

for

Kotlinの for は範囲やコレクションを順に処理します。

for (i in 1..5) {
    println(i)
}

downTo

for (i in 5 downTo 1) {
    println(i)
}

step

for (i in 1..10 step 2) {
    println(i)
}

while

var i = 0

while (i < 5) {
    println(i)
    i++
}

クラス

Kotlinのクラス定義は非常に簡潔です。

基本

class Person {
    var name = ""
    var age = 0
}

主コンストラクタ

class Person(val name: String, val age: Int)

この書き方では

  • 主コンストラクタ
  • プロパティ

が同時に定義されます。

インスタンス生成

val person = Person("Taro", 20)

null安全

Kotlinの大きな特徴が null安全(Null Safety)です。

通常の型は null を許可しません。

var name: String = "Taro"

nullable型

nullを許可する場合は ? を付けます。

var name: String? = null

Safe Call

println(name?.length)

nullでない場合のみ実行されます。

Elvis演算子

val length = name?.length ?: 0

左がnullなら右側が使われます。

コレクション

List

val list = listOf("A", "B", "C")

MutableList

val list = mutableListOf("A", "B")
list.add("C")

Map

val map = mapOf(
    "apple" to 100,
    "banana" to 200
)

ラムダ式

Kotlinでは関数を値として扱えます。

val add = { a: Int, b: Int -> a + b }

println(add(3,5))

コレクション処理

val numbers = listOf(1,2,3,4)

numbers.forEach {
    println(it)
}

it はラムダの引数です。

拡張関数

Kotlinでは既存クラスに対して新しい関数を追加できます。

fun String.hello() {
    println("Hello $this")
}

"Shin".hello()

これは 拡張関数 と呼ばれます。

Kotlinの特徴まとめ

Kotlinには次の特徴があります。

  • 簡潔で読みやすい文法
  • 強力な型推論
  • null安全
  • Javaとの高い相互運用性
  • 関数型プログラミングのサポート
  • Android開発で広く採用

Kotlinを学ぶときのおすすめ順序

効率的な学習順は次の通りです。

  1. 基本文法
  2. null安全
  3. クラス
  4. コレクション
  5. ラムダ式
  6. Android開発

以上、Kotlinの文法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次