التابع ARGF.each
في روبي
يعيد التابع each_line
مُعرِّفًا ثابتًا (enumerator
) يتكرر (iterates
) عبر كل سطر (الذي يُفصَل بالفاصلة الممرَّرة) من كل ملف من الملفات الموجودة في ARGV
. في حال تمرير كتلة برمجية للتابع each_line
، فسيُمرّر كل سطر بدوره إلى تلك الكتلة، وإلا فسيعاد مُعرِّف ثابت (enumerator
).
يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة السطر الأخير من الملف الأول، سيُعاد السطر الأول من الملف الثاني. يمكن استخدام التابعيْن ARGF
. filename
و ARGF
. lineno
لمعرفة اسم الملف ورقم السطر، على التوالي، للسطر الحالي.
البنية العامة
each(sep=$/) {|line| block } → ARGF
each(sep=$/, limit) {|line| block } → ARGF
each(...) → an_enumerator
المعاملات
sep
محرف السطر الجديد المستعمل في فصل الأسطر عن بعضها بعضًا. قيمته الافتراضية هي محرف السطر الجديد المستعمل في المنصة المستخدمة آنذاك.
limit
عدد صحيح يحدد الحد الأقصى لطول كل سطر، وستُقسَم السطور الطويلة التي تزيد عن هذا الحد وفقًا للقيمة limit
المعطاة.
...
القيم المعادة
يعاد مُعرِّف ثابت (enumerator
) أو المجرى ARGF
.
أمثلة
تطبع الشيفرة التالية كل سطر من كل ملف مسبوق برقمه، مع عرض اسم الملف مرة واحدة لكل ملف:
ARGF.each_line do |line|
puts ARGF.filename if ARGF.lineno == 1
puts "#{ARGF.lineno}: #{line}"
end
انظر أيضًا
- التابع
each_line
: يعيد معرفًا ثابتًا (enumerator
) يتكرر (iterates
) عبر كل سطر (الذي يفصل بالفاصلة الممرَّرة) من كل ملف من الملفات الموجودة فيARGV
.
مصادر
- قسم التابع each في الصنف ARGF في توثيق روبي الرسمي.