【发布时间】:2016-09-04 00:06:42
【问题描述】:
给定一个带有类型参数的类型,是否可以创建一个包含混合具体类型的值的列表?请参阅下面的代码。在我尝试创建 list2 之前,一切都很好,其中一些元素有一个 int 数据,而其他元素有一个浮点数。有没有办法做到这一点?我在 list3 中的尝试无法编译。
type Holder<'data> = {
Data : 'data
Name : String
}
let intVal =
{Data = 23;
Name = "Bill"}
let intVal2 =
{Data = 29;
Name = "Cindy"}
let floatVal =
{Data = 23.0;
Name = "John"}
let list1 = [intVal; intVal2]
let list2 = [intVal; floatVal]
let list3 : Holder<'a> list = [intVal; floatVal]
【问题讨论】:
-
否 -- F# 中的打字系统比 C# 强。你必须使用 [float intVal;浮动值]。
标签: f#