如何在记录中声明一个具有F#中通用记录列表的成员

mam*_*mcx 5 generics f# record

我被困在如何通过一个通用的记录列表.我想这样做:

type TabularData<'T>= array<'T>
type Table = {title:string; data:TabularData<'T>} //This of course not work

type Cpu = 
  { name:string; load:int; }

type Memory = 
  { name:string; load:int; }

//F# not let me pass CPU or Memory
Run Code Online (Sandbox Code Playgroud)

我想创建任何类型的记录列表,并传递给序列化为json

PD:有关该问题的更多信息.

我已经忘了添加主要问题.使用泛型,它扩展到其余的功能.因此,我需要使用通用签名标记一切,因此可以更通用并说:"我可以在这里找到任何类型的记录吗?"

Tom*_*cek 7

您还需要使Table类型通用:

type Table<'T> = {title:string; data:TabularData<'T>} 
Run Code Online (Sandbox Code Playgroud)

并且因为您的两个记录具有相同的字段,您可以使用Cpu.name明确表示您正在创建具有CPU值的表:

{ title = "hi"; data = [| { Cpu.name = "test"; load = 1 } |]}
Run Code Online (Sandbox Code Playgroud)