Kotlinの安全呼び出しに関して学びます。

スマートキャストのようにnullableであるオブジェクトもif文などで、nullでないことを保証して
あげれば、コンパイルエラーが起きずに実行することができました。

これをifなどを介さずにシンプルにしたものが、安全呼び出しになります。

例を見ていきましょう。

まず、nullableである変数strを宣言します。
strはnullableであるため、内部プロパティにアクセスする関数toUpperCaseを実行することができません。

そこで、変数の後に?をつけることで、nullの時はnullをそうでない場合は関数を実行することが可能になります。
今回のケースでは、strはnullであるために、”null”と表記することなりますが、
nullでない場合は、文字列に対してtoUpperCase()関数が実行されます。