gpt4 book ai didi

f# - 统计记录类型的成员

转载 作者:行者123 更新时间:2023-12-03 21:49:05 27 4
gpt4 key购买 nike

假设我有以下类型:

type BinaryOp =
{ Lhs: int
Rhs: int
Destination: int }
是否有 F# 方法来计算该记录的成员,即 countMembers<BinaryOp> = 3 ?我知道我可以使用 System.Reflection但我宁愿不要。

最佳答案

我认为不依赖 .NET 反射机制就没有办法做到这一点。但是,核心 F# 库在 .NET 反射之上提供了一个方便的 API,用于处理 F# 类型。您可以实现 countMembers像这样使用 F# 反射 API:

open Microsoft.FSharp.Reflection

let countMembers<'T> =
FSharpType.GetRecordFields(typeof<'T>).Length
我不确定您为什么要这样做,或者为什么要避免反射 - 也许对于您实际想要实现的目标有完全不同的设计 - 但是如果您需要计算记录中的字段数,这是最好的方法。

关于f# - 统计记录类型的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63418908/

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