2017-05-29 18 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 

しかし、私はプレイヤーの手に直接別のリストを追加する方法を見つけることができません。

あなたが with構文を使用することができます

答えて

7

:F#での記録は不変で(あまりにもそれをする方法があるが)、あなたは通常、既存のレコードを変化させません、代わりに、あなたは新しいを作成

let playerWithHand = { player with Hand = testlist } 

をプレーヤーの新しい状態を表す値。 withキーワードを使用すると、レコードがクローンされ、そのプロパティの一部が指定された新しい値に変更されるため、非常に簡単になります。

+0

大丈夫です。どうもありがとう!今私はこれをさらに進めることができます。 – Kamsiinov

関連する問題