F# 寓言 return Null/None 的最佳方式
F# Fable Best Way to return Null/None
我正在使用寓言。我正在查找数组,如果键不存在,我想 return null 或类似的。因为它是建立在 Javascript 上的,它本质上是不安全的类型,我不确定我是否应该全力以赴使 return 值成为一个选项类型,但我可能会做
我有一个看起来像这样的函数
let getDataFunction() : obj =
let data = dostuff() //Returns Map<string, obj>
match data.TryFind key with
| Some result -> result //Is a boxed obj of 'a
| None -> box null
但是当我尝试调用它时
let parsedData = unbox getDataFunction()
函数 return 是一个带有 Some{value: null} 的 Option 类型。
如果我使用 "" 或 0 或 false
而不是 null,它工作正常
我应该怎么做才能使 return None 或 null?
如果我对你的问题的理解正确,你可以更新函数,使其 returns None
或 Some
不是像这样的空值:
let getDataFunction() =
let data = dostuff() //Returns Map<string, obj>
data.TryFind key
|> Option.bind Option.ofObj
Option.ofObj
returns None
为空值。将它与 Option.bind
结合起来确保我们只有一个选项,而不是一个选项的嵌套选项。
我正在使用寓言。我正在查找数组,如果键不存在,我想 return null 或类似的。因为它是建立在 Javascript 上的,它本质上是不安全的类型,我不确定我是否应该全力以赴使 return 值成为一个选项类型,但我可能会做
我有一个看起来像这样的函数
let getDataFunction() : obj =
let data = dostuff() //Returns Map<string, obj>
match data.TryFind key with
| Some result -> result //Is a boxed obj of 'a
| None -> box null
但是当我尝试调用它时
let parsedData = unbox getDataFunction()
函数 return 是一个带有 Some{value: null} 的 Option 类型。 如果我使用 "" 或 0 或 false
而不是 null,它工作正常我应该怎么做才能使 return None 或 null?
如果我对你的问题的理解正确,你可以更新函数,使其 returns None
或 Some
不是像这样的空值:
let getDataFunction() =
let data = dostuff() //Returns Map<string, obj>
data.TryFind key
|> Option.bind Option.ofObj
Option.ofObj
returns None
为空值。将它与 Option.bind
结合起来确保我们只有一个选项,而不是一个选项的嵌套选项。