gpt4 book ai didi

f# - 错误 FS1133 : No constructors are available for the type 'List<' a>'

转载 作者:行者123 更新时间:2023-12-05 09:00:02 24 4
gpt4 key购买 nike

我创建了一个运行良好的 Person 类型。

type Person = 
{ First: string; Last : string }
override this.ToString() = sprintf "%s, %s" this.First this.Last

但是当我尝试如下列出 Person 时。

let people = 
new List<_>(
[|
{First = "Bhushan"; Last = "Shinde"}
{ First = "Abhi"; Last = "Jad"}
|])

它给出错误:No constructors are available for the type 'List<'a>'

谁能解释一下这是什么问题?

谢谢。

最佳答案

在 F# 中,名称 List<_>用于引用不可变的 F# 列表(在 F# 核心库中定义)。

如果要创建可变 .NET 列表 (System.Collections.Generic.List<_>),则需要使用 F# 库中定义的别名 ResizeArray<_> (或者您需要使用完全限定名称):

let people =  
new ResizeArray<_>(
[|
{First = "Bhushan"; Last = "Shinde"}
{ First = "Abhi"; Last = "Jad"}
|])

如果你想创建一个普通的 F# 列表(并以函数式风格使用它),那么你可以只使用列表理解语法而不将值传递给任何构造函数:

let people =  
[ {First = "Bhushan"; Last = "Shinde"}
{ First = "Abhi"; Last = "Jad"} ]

关于f# - 错误 FS1133 : No constructors are available for the type 'List<' a>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9513891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com