Kotlinの安全呼び出しに関して学びます。
スマートキャストのようにnullableであるオブジェクトもif文などで、nullでないことを保証して
あげれば、コンパイルエラーが起きずに実行することができました。
これをifなどを介さずにシンプルにしたものが、安全呼び出しになります。
例を見ていきましょう。
1 2 3 4 5 |
fun main(args: Array<String>) { var str : String? = null // print null println(str?.toUpperCase()) } |
まず、nullableである変数strを宣言します。
strはnullableであるため、内部プロパティにアクセスする関数toUpperCaseを実行することができません。
そこで、変数の後に?をつけることで、nullの時はnullをそうでない場合は関数を実行することが可能になります。
今回のケースでは、strはnullであるために、”null”と表記することなりますが、
nullでない場合は、文字列に対してtoUpperCase()関数が実行されます。