どうも、ちょげ(@chogetarou)です。
Kotlinには、let関数というものがあります。
let関数はぱっと見ではわかりませんし、itという変数も出てくる謎な関数です。
このlet関数について解説します。
let関数
let関数は、「オブジェクト?.let{ ~ }」と記述する「?.」とラムダ式を組み合わせた関数です。
「?.」は、オブジェクトがnilだったらその後のメソッドもnilになるというもの。
ラムダ式は、その場で書ける関数とでも思ってくれたらいいです。
つまり、「オブジェクトがnilじゃなかったら、ラムダ式の値が得られますよ」というのが、let関数です。
細かく分けて考えると、「オブジェクト?. メソッド」のメソッド名をletに変えただけなのです。
(もちろんletがラムダ式でメソッドとはまた違いますが)
it
let関数は「オブジェクト ?. let {}」と記述します。
letはラムダ式で、{}内に処理を記述しなければいけません。
この時、オブジェクトのメンバやメソッドを呼ぶ時に、「オブジェクト名.メソッド」のオブジェクト名を簡単にしたのがitです。
わかりやすくいうと、オブジェクト名を書くのがめんどくさいので、itと書けるようにしたのです。
var name : String? = "abc"
var len = name?.let {
it.length
}
上記の例では、nameをlet関数内ではitとして扱っています。
まとめ
let関数は、「オブジェクト ?. let {}」という書き方で、「?.」と「ラムダ式」を組み合わせた関数です。
「オブジェクト?.メソッド名」のメソッド名をletに置き換えただけとも言えます。
また、let関数内では、オブジェクトを簡潔にitと記述します。
コメント