我想做:
let Some(x) = bar in ...
但除非我这样做,否则我无法做到这一点
let Some(x) as idontcare = bar in ...
是否有更好的方式说"我不关心整个模式,只是匹配内部"
(我会使用_
,但这不会解析,所以我使用的是__
是的,我知道这是部分的,我只是在做一个快速的脚本。
编辑:这只是一个内置和类型的示例,因此Option.get
不是通用的;另外,我希望它像Haskell let-bindings一样内联。
答案 0 :(得分:7)
let Some(x) = bar
定义一个新函数Some
,遮蔽现有构造函数。相反,你想要:
let (Some(x)) = bar
答案 1 :(得分:3)
您可以使用match
:
match bar with | Some(x) -> ...
如果您尝试专门匹配某个选项,则可以使用Option.get
:
bar |> Option.get |> ...