如何使用.net数组?

col*_*ang 0 .net arrays f#

我读到了处理数组时我们应该使用myArray.[i],但是,根据我的经验myArray[i]编译也是如此.

但是,当我想写入.Net中的数组(因此它是可变的)时,这会产生错误 let myArray.[i] = 3但是let myArray[i] =3有效.

处理此类事情的最佳做法是什么?

另外,我应该使用Array.get还是使用.[]

如何将值设置为锯齿状数组,例如 let myArray.[i].[j] = 5

pad*_*pad 5

1)如果要为数组单元格赋值,请使用赋值运算符<-:

myArray.[i] <- 3 
Run Code Online (Sandbox Code Playgroud)

2)let myArray[i] = 3编译,因为编译器将其理解为myArray函数,并将列表作为其参数并返回3.如果您阅读警告和类型签名,您将看到您做错了.

3)Array.get一个单一的电话.[].Array.get在某些情况下,对于功能组合和避免类型注释很方便.比如你有

let mapFirst arrs = Array.map (fun arr -> Array.get arr 0) arrs 
Run Code Online (Sandbox Code Playgroud)

let mapFirst arrs = Array.map (fun (arr: _ []) -> arr.[0]) arrs
Run Code Online (Sandbox Code Playgroud)