F#中的数组是否通用?
Reference section states不是,因为它说,数组是Systam.Array。
同时我看到有阵列<'T> class,在参考文献中没有提到。为什么和使用哪个数组?
答案 0 :(得分:4)
是的,F#数组是通用的 - 这是一个采用array<'T>
的通用函数的例子:
let nth n (arr:array<'T>) = arr.[n]
nth 1 [| 1; 2; 3 |]
nth 1 [| "a"; "b" |]
这会创建标准.NET数组,因此查找为O(1),如果这是您的问题的一部分。 .NET中的数组在适当的泛型之前存在,因此它们在某种程度上是一种特殊情况(例如,反射并不将它们视为普通的泛型类型),但从F#类型系统的角度来看,它们只是普通的泛型类型。