I am looking for a way to get the value of an F# option or use a default value if it is None. This seems so common I can't believe something predefined doesn't exist. Here is how I do it right now:
// val getOptionValue : Lazy<'a> -> Option<'a> -> 'a let getOptionValue (defaultValue : Lazy<_>) = function Some value -> value | None -> defaultValue.Force ()
I am (sort of) looking for the F# equivalent of the C# ?? operator:
string test = GetString() ?? "This will be used if the result of GetString() is null.";
No function in the Option module does what I think is a pretty basic task. What am I missing?
Facebook adalah media sosial dan layanan jejaring sosial online Amerika yang dimiliki oleh Meta Platforms.
You're looking for defaultArg
[MSDN] ('T option -> 'T -> 'T
).
It's often used to provide a default value for optional arguments:
type T(?arg) = member val Arg = defaultArg arg 0 let t1 = T(1) let t2 = T() //t2.Arg is 0
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With