2015-06-13 13 views
5

Sono bloccato nel passaggio di un elenco generico di record. Voglio fare questo:Come dichiarare in un record un membro con un elenco generico di record 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 

voglio creare qualsiasi elenco di record di qualsiasi tipo, e passarlo in giro per serializzare a JSON

P.D: Maggiori informazioni in merito alla questione.

Ho dimenticato di aggiungere il problema principale. Usando i farmaci generici si è esteso al resto delle funzioni. Quindi devo taggare TUTTO con una firma generica, quindi è possibile essere più generico e dire: "Posso avere qualche tipo di documentazione qui?"

+1

tipo Tabella <'T> = {title: string; dati: TabularData <'T>}? –

risposta

7

Hai bisogno di fare il tipo di Table generica troppo:

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

E perché i due record hanno gli stessi campi, è possibile utilizzare Cpu.name dire esplicitamente che si sta creando una tabella con i valori della CPU:

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