gpt4 book ai didi

f# - 添加到 fsharp 中的类型

转载 作者:行者123 更新时间:2023-12-01 07:35:35 25 4
gpt4 key购买 nike

我在 fsharp 的任务中遇到了一些困难。

目前我已经预先声明了一个有用的类型,例如

type TESTA =
{ foo : Float
bar: factorA.double
}

由于类型的性质(在别处使用),我无法直接更改它(或以相同的方式重新声明它)。但是我需要向集合中添加另一个定义,只是一个简单的 bool 值,因此类型可能如下所示(如果我可以直接更改它)
type TESTA =
{ foo : Float
bar: factorA.double
truth: bool
}

如何在不直接更改类型的情况下获得相同的效果?我试过了:
type Final=
{ PartA: TESTA
truth: bool
}

但是创建这种“子类型”不允许我单独访问 foo/bar (就我可以测试而言):
let unittest =
{ Final.TESTA.foo = X <- this doesnt work :(
Final.truth = true <- this does work
}

谢谢

最佳答案

您的 Final类型应该可以工作,您只需要创建 TESTA手动输入。所以你可以做这样的事情:

let unittest =
{ Final.PartA = {foo = X; bar = Y};
Final.truth = true
}

如果您有很多这样的嵌套记录类型,您可能需要考虑尝试 Aether和它的 Lenses特征。

关于f# - 添加到 fsharp 中的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38959209/

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