gpt4 book ai didi

f# - 如何在 F# 中命名返回类型?

转载 作者:行者123 更新时间:2023-12-02 11:57:56 24 4
gpt4 key购买 nike

具有以下功能:

let Calc =
// do something
if something
(false, 0)
else
(true, some value)

如何定义输出字段的名称?

在 C# 中我可以这样做:

(bool Success, int Value) Calc()....

这样,当我得到结果时,我可以按名称访问“成功”和“值”字段;我怎样才能在 F# 中做同样的事情?

最佳答案

您可以通过像这样绑定(bind)到元组的字段来命名它们

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 ...

关于f# - 如何在 F# 中命名返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56157796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com