どうも、ちょげ(@chogetarou)です。
この記事では、Kotlinの「セーフコール」について解説します。
セーフコールとは?

「セーフコール」は、「?.」という記述のことを指します。
実際には、「変数 ?. メソッド 」というようになっています。
このセーフコールは、変数?の値がnull(ヌル)ならば、ドット(.)以降のメソッドの結果もnull(ヌル)を返すというものです。
意味合いとしては、「変数は存在していますか?いないならメソッドもありませんよ」です。
var text: String? = "abc"
var text2: String? = null
text?.length() // 3
text?.length() //null
上記は、String型の変数とそのメソッドlengthを使った例です。
textの場合は、nullではないので、文字数の長さをlength()の結果として得られます。
text2の場合は、nullなので、文字数の長さではなくnullがlength()の結果になっています。
「何に使うの?」という人もいるかと思います。
セーフコールは、nullによる条件分岐に使われます。
先程の例でいえば、「nullでなければlength()の長さを返し、nullであれば別の値を返すようにする」といったように出来ます。
まとめ
Kotlinの「セーフコール」は、「変数? . メソッド」と書き、変数がnullであればメソッドの結果もnullになるというものです。
変数がnullかどうかで条件分岐させたい時なんかに使います。
コメント