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


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.