続・Kotlin勉強中

以前いた現場ではKotlinを使うことになると言いつつ結局色々あってほとんど使わないままだったが、今度の新しい現場ではまたKotlinを使うことになりそうなので改めて勉強を進めてみた。

nulltemp.hatenablog.com

lazy

プロパティの初期化を値が最初に読み込まれる時まで遅延させるもの。Javaでやろうとすると多分以下のような感じになるんだろうが、

private String val = null;

public String getVal() {
  if (val == null) {
    val = ...
  }
  return val;
}

Kotlinだとあんまりnullを使うこと自体好まれないように感じられるので、そういうときに利用されるんだろう。

Idioms | Kotlin Documentation

object

クラスをシングルトンとして宣言してくれるらしい。Javaだとちゃんとしたシングルトンの実装をしようとするとちょっと冗長になりがちなので、シンプルに実装できるのは便利そう。

Idioms | Kotlin Documentation

スコープ関数

以下の5つがある。

  • with
  • run
  • let
  • apply
  • also

個人的に便利そうなのはletで、こちらを利用して値がnullでないときに処理を実行したりできるらしい。JavaScriptのletとなんか記憶が混ざりそうだが。

Idioms | Kotlin Documentation

オブジェクトに変更を加えて返すapply(とalso)なんかも以下を見る限り場合によっては役に立ちそう。

Idioms | Kotlin Documentation

use

リソースのクローズに関する処理。Javaのtry-with-resourcesよりはシンプルか?いやあんまり変わらない気もする。

Idioms | Kotlin Documentation

こうしてみると色々あって全部使いこなせるかちょっと心配だが、Java8のstream APIもなんだかんだで使っているうちに理解できるようになったので、これらも最終的には便利に感じるようになるんだろう。