哪些F#类型名称和声明语法被认为是惯用的?

时间:2019-04-12 21:06:15

标签: f#

F#具有多种声明相同类型的方法。这可能是由于F#既是ML系列成员又是.NET语言的双重血统。我找不到任何关于哪种风格更惯用的指导。

具体地说,我想知道:

  • 对于F#,floatdouble中的64位IEEE 754浮点数,哪个更惯用?
  • 在F#中,这是一种更惯用的方式来声明数组类型:
    • int[]
    • int array
    • array<int>

来源:

上下文:我正在处理一些API文档,该文档解释了数据存储中的数据如何映射到.NET类型,以及通常在C#和F#中如何声明这些类型。

2 个答案:

答案 0 :(得分:2)

对于双打,几乎总是float。我猜除非您处理单打和双打,并且需要确保清晰度。

对于泛型类型,我常用的语法是:

  • int option
  • int list
  • int[]
  • 对于所有其他类型,包括特定于F#的类型,例如AsyncSetMap,使用尖括号语法。

我认为唯一出现重大分裂的类型是seqIEnumerable的别名):我想说大多数人都使用seq<int>,但是有很多人使用写int seq。无论哪种方式,您都绝对应该使用seq而不是IEnumerable。同样,您应为ResizeArray使用别名System.Collections.Generic.List

答案 1 :(得分:1)

F# Core Library reference似乎是一个很好的例子,似乎更喜欢floatint[]seq<int>