التابع IO.each_line‎ في روبي

من موسوعة حسوب
< Ruby‏ | IO
مراجعة 09:26، 22 ديسمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (تدقيق)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

ينفذ التابع each_line الكتلة المعطاة على كل سطر في المجرى الذي استدعي معه.

يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError.

في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك.

البنية العامة

each_line(sep=$/ [, getline_args])  {|line| block }  ios
each_line(limit [, getline_args]){|line| block }  ios
each_line(sep, limit [, getline_args]) {|line| block }  ios
each_line(...) an_enumerator

المعاملات

sep‎

محرف يمثِّل الفاصل بين الأسطر. القيمة الافتراضية هي: /$.

limit‎

عدد صحيح يمثل الحد الأٌقصى للأسطر التي ستطبق عليها العملية.

getline_args

راجع صفحة readlines لمزيد من التفاصيل حول هذا المعامل.

القيمة المعادة

يعاد المجرى المعطاة بعد تمرير كل سطر من أسطره إلى الكتلة block، أو يعاد كائن من الصنف Enumerator في حال لم تُعطَ أية كتلة. 

أمثلة

مثال على استخدام التابع each_line‎:

f = File.new("testfile")
f.each {|line| puts "#{f.lineno}: #{line}" }

ناتج تنفيذ هذه الشيفرة هو:

1: This is line one
2: This is line two
3: This is line three
4: And so on...‎

انظر أيضًا

  • التابع each: ينفذ الكتلة المعطاة على كل سطر في المجرى الذي استُدعي معه.
  • التابع each_byte: يستدعي الكتلة المعطاة على كل بايت (0..255) في المجرى الذي استدعي معه.
  • التابع each_char: يستدعي الكتلة المعطاة على كل محرف في المجرى الذي استدعي معه.
  • التابع each_codepoint: يمرر كل عدد من الأعداد الترتيبية (Integer ordinal) لكل محرف من المحارف الموجودة في المجرى الذي استدعي معه إلى الكتلة المعطاة.

مصادر