2017-05-29 162 views
3

繼續使用F#創建紙牌遊戲系列。現在我堅持將值添加到卡片列表。我有F#將值添加到現有列表

type Player = {Name : String; Hand : Card list} 

我能夠從甲板上得到卡,它運作良好。我還可以創建新的列表與

let player = {Name = "Player"; Hand = List.Empty} 
let testlist = List.append player.Hand anotherlist 

但我無法弄清楚如何將直接添加anotherlist到玩家手中。

回答

7

可以使用with結構:

let playerWithHand = { player with Hand = testlist } 

如F#記錄是不可變的,你通常不會發生變異的現有記錄(雖然有很多方法可以做到這一點),而是,你創建一個新的代表玩家新狀態的值。 with關鍵字使得這非常容易,因爲它克隆了一條記錄,並將其某些屬性更改爲指定的新值。

+0

好的。非常感謝!現在我可以進一步瞭解這一點。 – Kamsiinov