如何从区别联合执行函数返回类型

时间:2015-12-02 21:31:29

标签: f#

我不确定如何撰写本声明。

  

让dealPlayer()= Hit(Two; Spades)

     

错误此表达式应具有类型

type Suit = | Spades
            | Diamonds
            | Clubs
            | Hearts

type Face = |Two | Three | Four | Five 
            | Six | Seven | Eight | Nine | Ten
            | Jack | Queen | King | Ace

type Card = {Face: Face; Suit: Suit}

type Deal = | Hand of Card * Card
            | Hit of Card

let dealPlayer() = Hit(Two; Spades)

我还是F#的新手。 请帮帮我。

1 个答案:

答案 0 :(得分:3)

假设您希望dealPlayer始终返回硬编码的两个黑桃,它就像这样完成:

let dealPlayer () = Hit { Face = Two; Suit = Spades }

dealPlayer函数具有推断类型unit -> Deal

Cardrecord type,因此您需要使用记录表达式来创建该类型的值。这是{ Face = Two; Suit = Spades }部分。

Hit部分是Hit Deal案例的案例构造函数