はじめに
スコープ関数を使うときは以下の記事を参考にさせてもらっていますが、
Kotlin スコープ関数 用途まとめ
逆に読む時になると、「どう読んだらいいんだ?」と
悩んでしまうことがあるので簡単にまとめておきます
それぞれオブジェクトのことをレシーバーと呼びます
let
結果 = レシーバー.let {}
となった時に{}内の処理の結果を返す
run
結果 = レシーバー.run {}
{}内の処理を行い、最後の処理を返す
結果 = レシーバー?.run {}
レシーバーがnullじゃなければ{}内の処理を行う
結果 = レシーバー?:run {}
レシーバーがnullなら{}内の処理を行う
apply
結果 = レシーバー.apply {}
となった時にレシーバーに対して{}内の処理を行い、その後レシーバーを返す
also
結果 = レシーバー.also {}
となった時に{}内の処理の後、レシーバー自身を返す
レシーバーに{}内の処理をまとめて行うことができる
それぞれ
結果 = レシーバー?.スコープ関数 {}
とすることで、レシーバーがnullでないことを確認できる
最後に
スコープ関数の使い所や、読み方など 十分に理解が及んでいないと混乱することになるので、
この記事を見て落ち着いてコードを読めるようにと思って書きましたが、
記事にすることで自分の中の理解も深まったと思うのでよかったと思うと共に
kotlin初心者の方などの参考にしていただければ嬉しいです