2015-06-13 5 views
5

deklarieren Ich bin stecken in wie eine generische Liste von Datensätzen um. Ich möchte dies tun:Wie in einem Datensatz ein Mitglied mit einer allgemeinen Liste von Datensätzen in F #

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 

Ich mag jede Liste des Datensätze von jeder Art erstellen, und gebe es um

P. D. JSon zu serialisiert: Mehr Informationen zu diesem Thema.

Ich habe vergessen, das Hauptproblem hinzuzufügen. Unter Verwendung von Generika verbreitete es sich weitläufig zu den übrigen Funktionen. Also muss ich ALLES mit einer generischen Signatur versehen, also ist es möglich, allgemeiner zu sein und zu sagen: "Ich kann hier irgendwelche Aufzeichnungen haben?"

+1

Typ Tabelle <'T> = {title: string; Daten: TabularData <'T>}? –

Antwort

7

Sie benötigen die Table Typ generic zu machen:

type Table<'T> = {title:string; data:TabularData<'T>} 

Und weil Ihre beiden Datensätze die gleichen Felder haben, können Sie Cpu.name verwenden ausdrücklich zu sagen, dass Sie eine Tabelle mit CPU Werte schaffen:

{ title = "hi"; data = [| { Cpu.name = "test"; load = 1 } |]} 
Verwandte Themen