💡
この章で話すこと
- Kotlinの特徴
- Kotinの基本的な記法
概要
「Kotlin」とはプログラミング言語であり、Androidアプリ・サーバサイドの開発などに用いられています。
JetBrainsを中心にオープンソースで開発されており、2017年にはGoogleによりAndroid開発の公式言語として採用されました。
採用事例
- Google
- Android公式言語として採用
- 2019年に「Kotlin-first」を宣言
- Netflix
- Androidアプリ開発
- バックエンドアーキテクチャの構築に活用
- マイ ニフティ
- Kotlin + Jetpack Composeで実装
Kotlinの特徴
- 静的型付け(型推論もある)
- NULL安全
- JVM, Nativeなど複数の動作環境
- Coroutinesなどの非同期処理
- オブジェクト指向
- 関数型
よく使う文法
基本文法
- 関数
- 変数(val, var)
- クラス
- コメント
❓
valとvarの違いは?
valは再代入不可ですが、varは再代入が可能です。
val x: Int = 5
x += 1 // エラー: Val cannot be reassigned
var count: Int = 5
count += 1 // count = 6
制御系
- if文、if式
- when文、when式
- for文
- while文
- do-while文
- break・continue
データクラス
- データを保持するためのクラスで、定型的なメソッドが自動生成される
-
equals()/hashCode(): 同等比較 -
toString():"User(name=John, age=42)"形式 -
componentN(): 分解宣言に使用 -
copy(): 一部のプロパティを変えたコピーを生成
-
Null
- safe call (
?.)コード例
val a: String? = "Kotlin" val b: String? = null // safe call: nullでなければ length を返す。nullなら null を返す println(a?.length) // 6 println(b?.length) // null - elvis (
?:) // エルビスコード例
val b: String? = null // 左辺がnullでなければその値を、nullなら右辺の値を返す val l = b?.length ?: 0 println(l) // 0
コレクション
- List, Mutable List
コード例
val numbers = listOf("one", "two", "three", "four") println("${numbers.size}") // 4 println("${numbers.get(2)}") // three - Set, Mutable Set
コード例
val numbers = setOf(1, 2, 3, 4) println(numbers.size) // 4 println(numbers.contains(1)) // true println(numbers.contains(5)) // false - Map, Mutable Map
コード例
val numbersMap = mapOf("key1" to 1, "key2" to 2, "key3" to 3) println(numbersMap.keys) // [key1, key2, key3] println(numbersMap["key2"]) // 2 - ArrayDeque
コード例
val deque = ArrayDeque(listOf(1, 2, 3)) deque.addFirst(0) deque.addLast(4) println(deque) // [0, 1, 2, 3, 4]
❓
Mutable[ミュータブル]とは?
読み取り専用(read-only)と変更可能(mutable)の2種類があります。
listOf(), setOf(), mapOf()みたいな読み取り専用は要素の追加・削除・変更ができません。
Kotlin Koans
Kotlin公式が提供している、段階的に問題を解いていく形式のサイトです。
ブラウザですぐに解けるので、Kotlinについてもっと詳しく知りたい方はチャレンジしてみてください!


