「Professional F# 2.0」という本を読んでいます著者は次のコードを示しています
let a string : option = None
if a.IsNone then
System.Console.WriteLine("a is none")
else
System.Console.WriteLine("a is some");;
それから言う
「これにより、Option の使用が null の使用よりもはるかに優れたものになり、実行時にスローされる例外の重要な原因を取り除くのに大いに役立ちます」
わかった。だから私は書く
System.Console.WriteLine(a.GetType());;
そして、私は得る
System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。System.Object.GetType() で .$FSI_0008.main@() で エラーのため停止しました
そして、私は「ウン!!!」のようです。
実際にどうやって
if a.isSome then
do bla bla
any different from
if a != null then
do bla bla
したがって、プログラマーが NullPointers からどのように保存されているのかわかりません
PS: NullPointerException は、過去に多くの悲しみをもたらしました。