我是Swift的新手,正在努力研究如何确定多维数组的大小。
我可以对单个数组使用count函数,但是当我创建一个矩阵/多维数组时,count调用的输出只给出一个值。
var a = [[1,2,3],[3,4,5]]
var c: Int
c = a.count
print(c)
2
以上矩阵' a'显然有2行3列,有没有办法输出这个正确的大小。
在Matlab中,这是一个简单的任务,包含以下代码行,
a = [1,2,3;3,4,5]
size(a)
ans =
2 3
Swift中有一个简单的等价物
我看起来很高和很低的解决方案,似乎无法找到我正在追求的。
谢谢你 - HB
答案 0 :(得分:5)
因为swift中的2D数组可以具有不同长度的子数组。没有“矩阵”类型。
let arr = [
[1,2,3,4,5],
[1,2,3],
[2,3,4,5],
]
所以“行”和“列”的概念不存在。只有count
。
如果要计算子阵列中的所有元素(在上面的例子中为12),你可以对它进行平面映射,然后count
:
arr.flatMap { $0 }.count
如果您确定阵列是矩阵,则可以执行以下操作:
let rows = arr.count
let columns = arr[0].count // 0 is an arbitrary value
答案 1 :(得分:0)
您必须询问数组特定行的大小才能获得列大小:
print("\(a.count) \(a[0].count)")