おさらい・null参照とは
$10億ドルの損失
- 実際、JavaやC#、JavaScriptでnull参照が原因でプログラムが落ちるのはひじょーによく目にする
null参照の厄介なところ
- あらゆる参照がnullとなる可能性がある
- 原因と離れたところで例外が起きる
関数を作る際の心得(1/2)
- 安易にnullを返さない
- 安易にnullを返さない
- 安易にnullを返さない
1万回唱えても足りない!
例外をcatchしない、と並べて家訓にしたい。
関数を作る際の心得
- 例外的状況を表現するのにnullを使うのは明確な誤り
- そう、ここは例外の出番
if (!arg) throw new Exception("この関数の引数はnullやundefinedを許容しません")
nullを避ける
- null初期化をやめる
これを徹底するだけでプログラムのバグは半分になる(割りと本気で言ってます) - そもそも変数を作らない
- nullかもしれないことを表現する型を使う
JavaのOptional型
※C#のNullableは違う!
可能性のある結果を全て表現可能な型を作る
- JavaのOptional型相当品を作る
- HaskellのMaybe相当品ならすぐ作れる
最後に
- nullを軽く考えないようにしましょう
- nullの代わりとなる仕組みを覚えましょう&作りましょう