是否有便捷/简便的方法来遍历数组上的for循环,同时获取值和索引?
基本选项:
i = 1
for file in ["foo.csv", "bar.csv"]
...
i += 1
end
files = ["foo.csv", "bar.csv"]
for i in 1:length(files)
files[i]
end
答案 0 :(得分:13)
编辑:正如Matt B指出的那样,pairs
很简单并且是索引安全的(如果使用OffsetArray
,命名为tuple,dictionary等):
for (i, file) in pairs(["foo.csv", "bar.csv"])
...
end
一个选项是enumerate
:
for (i, file) in enumerate(["foo.csv", "bar.csv"])
...
end
但是请注意,枚举不一定提供有效的索引,因为它实际上是zip(x, countfrom(1))
,并且可能会中断OffsetArray
s。
另一个是索引安全的,但要求files
是变量:
files = ["foo.csv", "bar.csv"]
for (i, file) in zip(eachindex(files), files)
...
end