はじめに/環境
変数/関数
- 変数を定義する (val, var)
- 基本的な型の一覧
- 関数を定義する (fun)
- 可変長引数をとる関数を定義する (vararg)
- lateinit による変数の初期化
- 分解宣言 (destructuring declarations) による
Pair要素やTriple要素の分解 - infix 記法で関数呼び出し時の記述を簡略化する (to)
- インライン関数の特徴を理解する (inline fun)
制御構文
クラス
クラスの基本
- クラスを定義する/コンストラクタを定義する (
class) - 継承可能なクラスを作成する (
open,abstract,override) - シールクラスで継承可能なクラスを制限する (sealed class)
- クラスにプロパティのアクセサメソッドを定義する (
set,get) - データクラスを定義する (data class)
- by を使ったメソッド呼び出しの委譲 (class delegation)
- 既存のクラスに関数やプロパティを追加する(拡張関数)
演算子 (Operator) の定義
- 算術演算子を定義してオブジェクトに
+や+=を適用できるようにする - 比較演算子を定義してオブジェクト同士の比較やソートを行えるようにする (
equals,compareTo) - インデックス演算子を定義して配列のようにアクセス可能なクラスを作る (index operator)
- in 演算子を定義して要素の包含チェックを行えるようにする (
contains) - iterator を定義して for-in ループで要素を処理できるようにする (iterator)
- 範囲演算子を定義して .. で指定した範囲の要素を取得できるようにする (
rangeTo)
object キーワード
- オブジェクト宣言でシングルトンを作成する (object declaration)
- オブジェクト式で無名オブジェクトを生成する (object expression)
- コンパニオンオブジェクトでクラスに静的メソッドを追加する (companion object)
ジェネリクス (Generics)【応用】
その他
- コンパニオンオブジェクトとクラス内オブジェクト宣言の違い
- クラス名を文字列で取得する (
class.java.simpleName) - クラス内の
MutableListを不変 (immutable) なListにして公開する - インラインクラスでプリミティブ型の型安全性を確保する (inline class)
型(タイプ)
- インタフェースを定義する (
interface) - 列挙型を定義する (
enum) - スマートキャストでキャストを自動化する
- safe call (
?.) や elvis operator (?:)、letでnullをうまく扱う - あるインスタンスがどのクラスのオブジェクトなのか調べる (
javaClass)
ラムダ式 (lambda expression)
- ラムダ式の基本 (lambda expression)
- メンバ参照、結合メンバ参照を理解する (member reference)
- レシーバー付きラムダ (with)
パッケージ
配列/コレクション
共通
- コレクションの基本的な使い方 (
List,Set,Map) - immutable なコレクションと mutable なコレクション (
List,Set,Map) - immutable なコレクションを mutable に変換する (
toMutableList,toMutableSet,toMutableMap) - 配列とリストの生成方法まとめ(連番からなる配列やリストを作成する)
- プリミティブ型の配列には
IntArrayやLongArrayなどの専用クラスを使うことを検討する - プリミティブ型配列 (
IntArray) の内容を見やすく出力する (contentToString) - 配列やコレクションの要素をループ処理する (
for-in,forEach,withIndex) - コレクションの要素をもとに別のリストを作成する (
map) - コレクションから条件に一致する要素のみを取り出す (
filter,filterNot,filterKeys,filterValues) - 配列やリストから null 以外の要素のみを抽出する (
filterNotNull,mapNotNull) - ある値がコレクションに含まれているか調べる (
in) - コレクションの最初・最後の要素を取得する (
first,last) - コレクション内の最小・最大の値を見つける (
min,max,minBy,maxBy) - 配列やリストの先頭・末尾の n 要素を取り出す・削除する (
take,drop)
マップ (Map)
- マップからキーのリスト、値のリストを作成する (
keys,values) - マップのキー/値をまとめて変更する (
mapKeys,mapValues) - マップをソートしてループ処理する (
toSortedMap) - マップの値を初めて取得しようとしたときに初期化する(
Mapの遅延初期化)(getOrPut)