簡體   English   中英

F#類型統計

[英]F# type Statisitic

我創建了一個類型統計信息,我必須返回統計信息類型中的每個值= 0。 我不知道如何返回類型統計信息。 我只知道如何返回“列表”。 這是類型:

type Statistics =
{ mp: Nat  //--> should get 0
  w: Nat   //--> should get 0
  d: Nat   //--> should get 0
  l: Nat   //--> should get 0
  gf: Nat  //--> should get 0
  ga: Nat  //--> should get 0
  gd: int  //--> should get 0
  pts: Nat //--> should get 0
  ag: Nat  //--> should get 0 }

這是我試過的:

let zeroStats: Statistics =
    Statistics
    |> List.map (fun x -> x = 0N)

要創建記錄類型的值,您需要使用以下語法:

let zeroStats =
  { mp = 0N  
    w = 0N   
    d = 0N   
    l = 0N   
    gf = 0N  
    ga = 0N  
    gd = 0
    pts = 0N 
    ag = 0N  }

沒有簡單的方法可以使用迭代或類似List.map 您只需要為每個字段顯式設置值。 (如果這是一個問題,則可以用不同的方式表示數據,也許可以將其表示為鍵值對列表。)

如注釋中所述,您可以使用F#反射來完成此操作,F#反射是一種在運行時檢查類型結構並允許您對其進行操作的機制。 但是,這是您可能不需要的更高級的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM