数组类型可以直接替换序列类型吗?

时间:2013-06-03 02:58:31

标签: f# sequence

以下代码有效。

Seq.iter (printfn "%d") [|1; 2; 3; 4; 5; 6; 7; 8; 9; 10|]

这是另一个例子。 http://msdn.microsoft.com/en-us/library/ee340408.aspx

数组类型可以替换直线序列类型吗?

1 个答案:

答案 0 :(得分:5)

这是有效的,因为数组被隐式转换为seq<'T>(这种转换发生的少数几个点之一)。

但是,某些Seq函数未针对数组进行优化,并且执行速度比等效Array.x函数慢。因此,您应该使用哪个模块与输入匹配(List.x Lists Array.xArrays。此外,返回类型将不同 - 如果在数组上使用Seq.map,则返回Seq而不是Array,这可能会影响性能(例如,获取第n个元素是阵列明显更快。)