从 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在另一个分支matchNone的类型确实是'a option。我假设您的问题是 func x 不是 return 选项类型。

如果您的函数没有 return 选项类型,您需要决定当 rNone 时要做什么。即,您需要选择某种默认行为。你不能 return None 除非你 return Some (func x) 在另一个分支。

您可以引发异常、要求调用者提供默认值或您自己提供默认值。