こんにちは😀
今回は、データ型の不整合を避けるためのnullの検知処理に
関してみていきます。
関数の戻り値や引き数が特定の場合にnullになるように指定すると、
計算や処理が失敗したときは値がnullになるので予め検知して
適切に処理することができます。
まずは、戻り値がnullになる可能性がある場合の処理を書いてみます。
以下は、変数bが「0」の場合、nullを返す関数になります。
そうでない場合は、割り算の値を返します。
戻り値がnullの可能性があるので、1行目の戻り値の型を「Int?」
とします。
fun divideNum(a:Int,b:Int):Int? { if (b == 0) return null else return a/b }
こちらは、main関数です。
divideNum関数を呼ぶ処理の変数bに「0」をセットしています。
fun main(args: Array<String>) {
println(“処理開始ーーーー”)
val samples = divideNum(5,0)
println(samples)
println(“ーーーー処理終了”) }
実行すると、nullが出力されています。
割り切れる場合は、普通の処理になります。
divideNum関数に、変数a=55と変数b=5をセットします。
val samples = divideNum(55,5)
実行すると、nullではなく、そのまま割り算の整数が出力されます。
エラーになります。
また、同じように引き数がnullの場合の判定も可能です。
以下の関数は、変数bがnullの場合を想定した処理です。
1行目の変数bの型を「Int?」にしています。
fun divideNum(a:Int,b:Int?):Int { if (b == null) return a else return a/b }
main関数はこうします。変数bにnullをセットします。
val samples = divideNum(55,null)
実行します。
bがnullなので、変数aの値を返し出力しています。
Kotlinはjavaと異なり、上記のようにnullの処理がわかりやすい
印象があります。
こういう処理で、nullが入力される場合に発生するエラーを
回避することができます。
今回はここまで🤚
では、また次回。