我还有10天就要参加F#考试了,由于我目前正在做旧的考试套题,所以遇到了一个问题,就是对泛型的理解,尤其是有两个多态参数的类型。
这道题应该是比较容易解决的,但是语法上是怎么操作的,我不清楚.老考题如下。
以下类型 Sum<'a,'b>
包括两种不同的价值
type Sum<'a,'b> =
| Left of 'a
| Right of 'b
现在我需要写两个类型为 Sum<int list, bool option>
,其中一个应使用 Left
其二 Right
.
如果您定义 let sum1 = Left "Hello World
它评价为 val sum1 : Sum<string,'a>
但我找不到方法来创建 Sum<int list, bool option>
.
你会如何解决?
如果你要写
let sum1 = Sum<string,int>.Left "Hello World"
你会得到 Sum<string,int>
所以如果你需要一个 Sum<int list, bool option>
那么......
(平心而论,在现实生活中,有一个......)。Sum<string,'a>
并不是真正的问题,因为 "a可以成为任何东西,如果它需要是一个。bool option
或其他什么东西,类型推理通常会为你做艰苦的工作,并约束'a)。