从 OCaml 中的 Some x 获取 x
Get x from Some x in OCaml
所以我有一个函数 return 是 None 或一些 [floats]
我正在尝试将此函数的 return 值传递给接受 [floats]
的函数
match r with
| None -> None
| Some x -> func x
但这告诉我 x 有类型 'a 选项。我做错了什么?
根据这个小片段,编译器似乎在告诉您 func x
(不是 x
)的类型为 'a option
。那是因为你returnNone
在另一个分支match
。 None
的类型确实是'a option
。我假设您的问题是 func x
不是 return 选项类型。
如果您的函数没有 return 选项类型,您需要决定当 r
为 None
时要做什么。即,您需要选择某种默认行为。你不能 return None
除非你 return Some (func x)
在另一个分支。
您可以引发异常、要求调用者提供默认值或您自己提供默认值。
所以我有一个函数 return 是 None 或一些 [floats] 我正在尝试将此函数的 return 值传递给接受 [floats]
的函数match r with
| None -> None
| Some x -> func x
但这告诉我 x 有类型 'a 选项。我做错了什么?
根据这个小片段,编译器似乎在告诉您 func x
(不是 x
)的类型为 'a option
。那是因为你returnNone
在另一个分支match
。 None
的类型确实是'a option
。我假设您的问题是 func x
不是 return 选项类型。
如果您的函数没有 return 选项类型,您需要决定当 r
为 None
时要做什么。即,您需要选择某种默认行为。你不能 return None
除非你 return Some (func x)
在另一个分支。
您可以引发异常、要求调用者提供默认值或您自己提供默认值。