3

のドキュメントによるとOption.Value<'T>

Some オプションの値を取得します。オプションが None の場合、NullReferenceException が発生します。

この関数は、コンパイルされた F# コードで使用するためのものであり、直接使用しないでください。

最後の文は、それが相互運用性によるものであることを暗示していますか? もしそうなら、ユースケースは何ですか?Optionそれ以外の場合、型の要点は未定義の値の可能性を明示し、それらの処理を促進することであるため、非常に奇妙に思えますが、これは簡単に回避できます。

let none : int option = None
let value = none.Value
4

1 に答える 1

3

私はそれがそこにあると想像します

match v with 
|Some(t) -> t

動作します - そのValueプロパティがないと、F# コードで使用できる関数を使用して を取得できませんt(F# からアクセスできない DU プロパティがいくつかありますが、これは代替手段です)。直接Some使用する場合にオプションをチェックしないことがわかっている場合は、非常にわずかな速度の利点がある場合もあります。value

于 2012-09-01T21:45:23.080 に答える