F#将值添加到现有列表中

时间:2017-05-29 16:52:51

标签: list f#

继续使用F#创建纸牌游戏系列。现在我不得不在卡片列表中添加值。我有

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

我能从牌组中取出牌,效果很好。我也可以使用

创建新列表
let player = {Name = "Player"; Hand = List.Empty}
let testlist = List.append player.Hand anotherlist

但我无法弄清楚如何将另一个名单直接添加到玩家手中。

1 个答案:

答案 0 :(得分:7)

您可以使用with构造:

let playerWithHand = { player with Hand = testlist }

由于F#中的记录是不可变的,因此通常不会改变现有记录(尽管也有办法),而是创建一个表示播放器新状态的新值。 with关键字使这非常容易,因为它会克隆记录并将其某些属性更改为指定的新值。