التابع ARGF.each في روبي

من موسوعة حسوب
< Ruby‏ | ARGF
مراجعة 10:35، 10 سبتمبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>ARGF.each</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby ARGF...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يعيد التابع 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 في توثيق روبي الرسمي.