শর্টহ্যান্ডের জন্য লুপের জন্য মান এবং সূচক উভয়ই একটি অ্যারের মাধ্যমে পুনরাবৃত্তি হবে


9

কোন অ্যারেতে লুপের মাধ্যমে পুনরাবৃত্তি করার কোনও সুবিধাজনক / শর্টহ্যান্ড উপায় আছে, মূল্য এবং সূচক উভয়ই পেয়ে?

প্রাথমিক বিকল্পসমূহ:

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

উত্তর:


13

সম্পাদনা করুন: ম্যাট বি যেমন উল্লেখ করেছে, pairsএটি সহজ এবং সূচক-নিরাপদ (যদি কোনও OffsetArray, নামযুক্ত টিপল, অভিধান ইত্যাদি ব্যবহার করে থাকে):

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

6
আরও সহজ: pairs!
ম্যাট বি।

এটি অভিধান এবং নামযুক্ত টিপলস এবং এই জাতীয় বিষয়ের জন্যও কাজ করে।
ম্যাট বি।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.