具有以下内容:
let a = "hello world".Split(' ')
返回类型是字符串数组,但是类型写成:
系统字符串[]
我不明白为什么:
- 你声明一个数组
[| ... |]
但它显示为[ ... ]
在类型中
- 你声明一个列表
[ ... ]
但它显示为x list
在类型中
另一个例子:
([| 3 |]).GetType()
val it : System.Type =
System.Int32[]
为什么会这样呢?
这种不一致可能是由于 F# 是一种 .NET 语言造成的。
-
在 F# 中,您更需要列表而不是数组,因此使用更短的语法是有意义的[ ... ]
对于列表和更长的语法[| ... |]
对于数组。
-
在 .NET 中,数组类型写为System.Int32[]
。这就是你从中得到的GetType
F# 无法覆盖它,因为它来自 .NET 库。
-
至于类型名称,您始终可以使用'a list
and 'a array
如果你想显式地编写类型。
-
最不一致的功能是您可以编写数组类型,例如int[]
在 F# 中也是如此。我同意这很令人困惑。我认为 F# 只是采用了 C# 中使用的表示法。但是,请注意,这还可以让您轻松定义多维数组,例如int[,]
and int[,,]
。我认为多维数组类型没有其他语法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)