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

3

继续使用 F# 创建纸牌游戏系列。现在我卡在了如何将值添加到卡牌列表中。我已经

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

我能够从牌堆中抽取牌并且它能够正常工作。我还可以创建新的列表。

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

但我无法想出如何直接将另一个列表添加到玩家手中。
1个回答

7
您可以使用with结构:
let playerWithHand = { player with Hand = testlist }

由于 F# 中的记录是不可变的,因此您通常不会改变现有记录(尽管也有一些方法可以实现这一点),而是创建一个新值来表示玩家的新状态。使用 with 关键字非常容易实现此目的,因为它会克隆记录并根据指定的新值更改其某些属性。


好的。非常感谢!现在我可以继续进行了。 - Kamsiinov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接