มีวิธีที่สะดวก / การจดชวเลขเพื่อวนซ้ำสำหรับลูปในอาร์เรย์โดยรับทั้งค่าและดัชนีหรือไม่
ตัวเลือกพื้นฐาน:
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
มีวิธีที่สะดวก / การจดชวเลขเพื่อวนซ้ำสำหรับลูปในอาร์เรย์โดยรับทั้งค่าและดัชนีหรือไม่
ตัวเลือกพื้นฐาน:
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
คำตอบ:
แก้ไข: ตามที่ Matt B ชี้ให้เห็นpairsนั้นง่ายและปลอดภัยสำหรับดัชนี (หากใช้OffsetArrayชื่อ tuple, พจนานุกรม ฯลฯ ):
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ได้
สิ่งที่ปลอดภัยสำหรับดัชนี แต่ต้องfilesเป็นตัวแปร:
files = ["foo.csv", "bar.csv"]
for (i, file) in zip(eachindex(files), files)
...
end
pairs!