具有以下功能:
let Calc =
// do something
if something
(false, 0)
else
(true, some value)
如何定义输出字段的名称?
在C#中我可以做到:
(bool Success, int Value) Calc()....
因此,当我得到结果时,可以按名称访问“成功”和“值”字段;我该如何在F#中执行相同的操作?
答案 0 :(得分:8)
您可以像这样绑定到元组的字段来命名它们
let Calc () =
// do something
if something
(false, 0)
else
(true, some value)
let (success, value) = Calc ()
您不必在Calc
本身的定义中为元组字段命名,您可以在使用Calc
的地方命名。如果您希望提供结果名称,请考虑创建包含以下内容的记录类型:
type CalcData = { success: bool; value: int }
let Calc () =
if something then { success = false; value = 0 }
else { success = true, value = 123 }
let {success = success; value = value} = Calc ()
但是看起来您的Calc
不能返回任何内容或返回某些结果,这就是Option
类型用于的原因:
let calc () = if something then None else Some 123
match calc () with
| None -> // if calc returned no value then do ....
| Some value -> // if calc returned a value then do ...