F# 获取记录类型标签作为字符串列表
是否可以将记录类型的标签作为字符串列表获取? 例如,给定以下类型:F# 获取记录类型标签作为字符串列表,f#,F#,是否可以将记录类型的标签作为字符串列表获取? 例如,给定以下类型: type Person = { Name: string Age: int } 我想要一个函数,它可以为我提供[“Name”;“Age”]您可以使用FSharp.Reflection.FSharpType.GetRecordFields获取记录类型的属性信息,从中可以获取字段名 let props = FSharp.Reflection.FSharpType.GetRecordFields(typeof<
type Person = {
Name: string
Age: int
}
我想要一个函数,它可以为我提供
[“Name”;“Age”]
您可以使用FSharp.Reflection.FSharpType.GetRecordFields
获取记录类型的属性信息,从中可以获取字段名
let props = FSharp.Reflection.FSharpType.GetRecordFields(typeof<Person>)
let names = props |> Array.map(fun prop -> prop.Name)
printfn "%A" names
可以使用
FSharp.Reflection.FSharpType.GetRecordFields
获取记录类型的属性信息,从中可以获取字段名称
let props = FSharp.Reflection.FSharpType.GetRecordFields(typeof<Person>)
let names = props |> Array.map(fun prop -> prop.Name)
printfn "%A" names
你为什么要这样做?在某些情况下,它是有用的,但它比许多其他语言要难得多。也许有一个更好的解决方案能激发你问…:-)您可以序列化为JSON,然后通过解析文本或使用JSON类型提供程序获取属性。您的另一个选择是反射,如下所述。为什么要这样做?在某些情况下,它是有用的,但它比许多其他语言要难得多。也许有一个更好的解决方案能激发你问…:-)您可以序列化为JSON,然后通过解析文本或使用JSON类型提供程序获取属性。您的另一个选择是反射,如下所述。