gpt4 book ai didi

f# - F#多维数组类型

转载 作者:行者123 更新时间:2023-12-03 13:45:51 26 4
gpt4 key购买 nike

'a[,,]'a[][][]有什么区别?它们都代表3维数组。
它使我写array3d.[x].[y].[z]而不是array3d.[x, y, z]

为什么我不能执行以下操作?

> let array2d : int[,] = Array2D.zeroCreate 10 10;;
> let array1d = array2d.[0];;

error FS0001: This expression was expected to have type
'a []
but here has type
int [,]

最佳答案

区别在于'a[][]表示数组(可能具有不同的长度)的数组,而在'a[,]中表示矩形2D数组。第一种也称为锯齿状数组,第二种称为多维数组。区别与C#中的相同,因此您可能需要查看jagged arraysmultidimensional arrays的C#文档。 F# WikiBook中还有一个出色的文档。

为了使用图片演示这一点,类型为'a[][]的值可以看起来像这样:

0 1 2 3 4
5 6
7 8 9 0 1


虽然 a[,]类型的值将始终是矩形,并且可能看起来像这样:

0 1 2 3
4 5 6 7
8 9 0 1




要获得多维数组的单个“线”,可以使用切片符号:

let row = array2d.[0,*];;


https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/arrays#array-slicing-and-multidimensional-arrays

关于f# - F#多维数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2909310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com