الفرق بين المراجعتين لصفحة: «Ruby/ARGF/each line»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>ARGF.each_line</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby AR...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby ARGF]] | [[تصنيف: Ruby ARGF]] | ||
يعيد التابع <code>each_line</code> قيمة قابلة للعد (<code>enumerator</code>) تتكرر ( | يعيد التابع <code>each_line</code> قيمة قابلة للعد (<code>enumerator</code>) تتكرر (iterates) عبر كل سطر (الذي يفصل بالفاصلة الممرَّرة) من كل ملف من الملفات الموجودة في <code>ARGV</code>. في حال تمرير كتلة برمجية للتابع <code>each_line</code>، فسيُمرّر كل سطر بدوره إلى تلك الكتلة، وإلا فستعاد قيمة قابلة للعد (<code>enumerator</code>). | ||
يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة السطر الأخير من الملف الأول، سيُعاد السطر الأول من الملف الثاني. يمكن استخدام التابعيْن | |||
يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة السطر الأخير من الملف الأول، سيُعاد السطر الأول من الملف الثاني. يمكن استخدام التابعيْن <code>ARGF.[[Ruby/ARGF/filename |filename]]</code> و <code>ARGF.[[Ruby/ARGF/lineno |lineno]]</code> لمعرفة اسم الملف ورقم السطر، على التوالي، للسطر الحالي. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby"> each_line(sep=$/) {|line| block } → ARGF | <syntaxhighlight lang="ruby"> each_line(sep=$/) {|line| block } → ARGF | ||
سطر 16: | سطر 11: | ||
each_line(...) → an_enumerator | each_line(...) → an_enumerator | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==المعاملات== | |||
=== <code>sep</code> === | |||
محرف السطر الجديد المستعمل في فصل الأسطر عن بعضها بعضًا. قيمته الافتراضية هي محرف السطر الجديد المستعمل في المنصة المستخدمة آنذاك. | |||
=== <code>limit</code> === | |||
عدد صحيح يحدد الحد الأقصى لطول كل سطر، وستُقسَم السطور الطويلة التي تزيد عن هذا الحد وفقًا للقيمة <code>limit</code> المعطاة. | |||
==القيم المعادة== | ==القيم المعادة== | ||
تعاد قيمة قابلة للعد (<code>enumerator</code>) أو يعاد المجرى | تعاد قيمة قابلة للعد (<code>enumerator</code>) أو يعاد المجرى <code>ARGF</code> | ||
==أمثلة== | ==أمثلة== | ||
تطبع الشيفرة التالية كل سطر من كل ملف مسبوق برقمه، مع عرض اسم الملف مرة واحدة لكل ملف: | تطبع الشيفرة التالية كل سطر من كل ملف مسبوق برقمه، مع عرض اسم الملف مرة واحدة لكل ملف: | ||
سطر 29: | سطر 31: | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* التابع [[Ruby/ARGF/filename | <code>filename</code>]]: يعيد اسم الملف الحالي. | * التابع [[Ruby/ARGF/filename | <code>filename</code>]]: يعيد اسم الملف الحالي. | ||
* التابع [[Ruby/ARGF/lineno | <code>lineno</code>]]: يجلب رقم السطر الحالي للمجرى | * التابع [[Ruby/ARGF/lineno | <code>lineno</code>]]: يجلب رقم السطر الحالي للمجرى <code>ARGF</code> ككُل. | ||
==مصادر== | ==مصادر== | ||
* قسم التابع each_line في الصنف ARGF في توثيق روبي الرسمي. | * [http://ruby-doc.org/core-2.5.1/ARGF.html#method-i-each_line قسم التابع each_line في الصنف ARGF في توثيق روبي الرسمي.] | ||
مراجعة 10:43، 10 سبتمبر 2018
يعيد التابع each_line
قيمة قابلة للعد (enumerator
) تتكرر (iterates) عبر كل سطر (الذي يفصل بالفاصلة الممرَّرة) من كل ملف من الملفات الموجودة في ARGV
. في حال تمرير كتلة برمجية للتابع each_line
، فسيُمرّر كل سطر بدوره إلى تلك الكتلة، وإلا فستعاد قيمة قابلة للعد (enumerator
).
يسمح لك هذا التابع بمعالجة الملفات المُمرَّرة من سطر الأوامر كما لو كانت ملفًا واحدًا مكونًا من سلسلة من هذه الملفات المسماة. بعد إعادة السطر الأخير من الملف الأول، سيُعاد السطر الأول من الملف الثاني. يمكن استخدام التابعيْن ARGF.filename
و ARGF.lineno
لمعرفة اسم الملف ورقم السطر، على التوالي، للسطر الحالي.
البنية العامة
each_line(sep=$/) {|line| block } → ARGF
each_line(sep=$/, limit) {|line| block } → ARGF
each_line(...) → an_enumerator
المعاملات
sep
محرف السطر الجديد المستعمل في فصل الأسطر عن بعضها بعضًا. قيمته الافتراضية هي محرف السطر الجديد المستعمل في المنصة المستخدمة آنذاك.
limit
عدد صحيح يحدد الحد الأقصى لطول كل سطر، وستُقسَم السطور الطويلة التي تزيد عن هذا الحد وفقًا للقيمة limit
المعطاة.
القيم المعادة
تعاد قيمة قابلة للعد (enumerator
) أو يعاد المجرى ARGF
أمثلة
تطبع الشيفرة التالية كل سطر من كل ملف مسبوق برقمه، مع عرض اسم الملف مرة واحدة لكل ملف:
ARGF.each_line do |line|
puts ARGF.filename if ARGF.lineno == 1
puts "#{ARGF.lineno}: #{line}"
end