f# - 哪些 F# 类型名称和声明语法被认为是惯用的?
问题描述
F# 有多种方法来声明相同的类型。这可能是因为 F# 既是 ML 家族的成员又是 .NET 语言的双重血统。我还没有找到任何关于哪种风格更惯用的指导。
具体来说,我想知道:
- 对于 F# 中的 64 位 IEEE 754 浮点数,哪个更
float
惯用double
? - 在 F# 中,这是一种更惯用的方式来声明数组类型:
int[]
int array
array<int>
资料来源:
- https://docs.microsoft.com/dotnet/fsharp/language-reference/basic-types
- https://docs.microsoft.com/dotnet/fsharp/language-reference/fsharp-types#syntax-for-types
背景:我正在编写一些 API 文档,解释数据存储中的数据如何映射到 .NET 类型,以及这些类型通常如何在 C# 和 F# 中声明。
解决方案
对于双打来说,几乎总是float
. 除非你同时处理单打和双打,并且需要确保清晰我猜。
对于泛型类型,我使用并看到人们使用的常用语法是:
int option
int list
int[]
- 对于所有其他类型,包括特定于 F# 的类型,如
Async
、Set
和Map
,使用尖括号语法。
我觉得唯一有重大分歧的类型是seq
(的别名IEnumerable
):我想说大多数人使用seq<int>
但有相当多的人写int seq
。无论哪种方式,您绝对应该使用seq
而不是IEnumerable
. 同样,您应该ResizeArray
为System.Collections.Generic.List
.
推荐阅读
- c# - CountDigits(long),并不是所有的代码路径都返回一个值
- pine-script - 在 pine 脚本中在所需的固定时间执行代码
- c# - C# Firebase 数据库反序列化为对象
- python - django 表单的问题(1 个视图中的列表和表单)
- github - Github 操作拉取请求构建器返回错误
- html - 用于全屏启动 HTML 5 视频的导航链接
- javascript - 无法安装 NativeBase
- c++ - 在派生类中使用重载的 + 运算符
- python - 如何测试 Pandas 多索引中存在的一组值(不是全部)?
- bash - 如何使bash脚本密码受到保护?