如何从f#中的表达式返回unit
?例如:
let readInt =
let str = Console.ReadLine()
let (succ, num) = Int32.TryParse(str)
match succ with
| true -> Some(num)
| _ -> None
match readInt with
| Some(v) -> Console.WriteLine(v)
| None -> ignore //i don't want to do anything,
// but i don't know how to ignore this brunch of the expression
答案 0 :(得分:11)
F#中的(仅可能)单位值写为
()
所以你的代码变成了
...
| None -> ()
答案 1 :(得分:7)
只需按以下方式编写()
match readInt with
| Some(v) -> Console.WriteLine(v)
| None -> ()
答案 2 :(得分:5)
请记住单位价值()
,在许多情况下都很方便。
在这种情况下,您可以使用Option module中的iter
函数:
Option.iter Console.WriteLine readInt
它还强调了iter
函数(例如来自Seq
,List
和Array
模块的函数)将始终为您提供单位值()
的事实