2015-06-13 23 views
5

Kayıtların genel bir listesini nasıl geçtiğimde takılıyorum. Bunu yapmak istediğimi:Bir kayıttaki genel bir kayıt listesine sahip bir kayıtta nasıl bildirilir? 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 

Ben herhangi bir türde kayıtların herhangi listesini oluşturmak istiyorum, ve

P.D json için seri hale getirmek ve dolaştır: konuyla ilgili daha fazla bilgi.

Ana sorunu eklemeyi unuttum. Jenerik kullanarak, fonksiyonların geri kalanına geniş yayıldı. Bu yüzden genel bir imza ile HER ŞEY etiketleme ihtiyacım var, bu yüzden daha genel olması ve "Burada herhangi bir kayıt alabilir miyim?"

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

Ve iki kayıt aynı alanlara sahip olduğundan, açıkça CPU değeri olan bir tabloya oluştururken söylemek Cpu.name kullanabilirsiniz::

+1

type Tablo <'T> = {title: string; data: TabularData <'T>}? –

cevap

7

Sen jenerik de Table türünü yapmak gerekir

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