arrays - F# - 定义对象数组

标签 arrays f#

我正在尝试为我正在做的项目创建一些示例数据。为此,我需要一个简单的对象结构,其中对象包含对象数组。在这种情况下,批评家可以进行评论。代码如下所示:

type Review = 
  { MovieName: string;
    Rating: double }

type Critic = 
  { Name: string;
    Ratings: Review[] }

let theReviews = [{ MovieName = "First Movie"; Rating = 5.5 }; { MovieName = "Second Movie"; Rating = 7.5 };]

let theCritic = { Name = "The Critic"; Ratings = [{ MovieName = "First Movie"; Rating = 5.5 }; { MovieName = "Second Movie"; Rating = 7.5 };]  }

“评论”行工作正常,但我无法让“theCritict”行工作。我收到的错误是:

Error 1 This expression was expected to have type Review []
but here has type 'a list

如何让它发挥作用?

最佳答案

数组文字使用[| ... |] 而不是 [ ... ] ,它们是列表文字 - 您需要类似

let theCritic = { Name = "The Critic"; Ratings = [|{ MovieName = "First Movie"; Rating = 5.5 }; { MovieName = "Second Movie"; Rating = 7.5 };|]  }

这解释了错误 - 您使用了列表文字而不是数组文字

关于arrays - F# - 定义对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14015630/

相关文章:

javascript - 如何将 3 个数组合并为一个具有相同索引的数组 - JavaScript

ios - 重新排序 UIImage 数组中的元素

javascript - 如果一个属性具有特定值,则删除整个对象

f# - F# 类型提供程序是否可以设计为生成 AST 类型和解析器?

c# - 在 LINQPad 中,F# 中 C# 的 .Dump() 方法的等价物是什么?

oop - 如何在函数式编程中建模继承关系

f# - 有人可以解释这些 F# 类型推理的奇怪之处吗?

javascript - 在javascript中的字典(关联数组)中使用变量

c++ - 无法理解 new 或 malloc 如何与 BYTE* 一起工作

visual-studio-2013 - 为什么 F# 库没有 dll 版本?