我读到了处理数组时我们应该使用myArray.[i],但是,根据我的经验myArray[i]编译也是如此.
但是,当我想写入.Net中的数组(因此它是可变的)时,这会产生错误 let myArray.[i] = 3但是let myArray[i] =3有效.
处理此类事情的最佳做法是什么?
另外,我应该使用Array.get还是使用.[]?
如何将值设置为锯齿状数组,例如 let myArray.[i].[j] = 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)
| 归档时间: |
|
| 查看次数: |
137 次 |
| 最近记录: |