我将在 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可以成为任何东西,如果它需要成为a”bool option
或者无论如何,类型推断通常会为你做艰苦的工作并限制'a)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)