التابع String.each_line في روبي

من موسوعة حسوب
< Ruby‏ | String

يقتطع التابع each_line السلسلة النصية التي استدعيت معه إلى أجزاء (كل جزء يمثِّل سطرًا افتراضيًّا) مفصولة بفاصل محدَّد ثم يمرِّر كل منها على حدة إلى الكتلة المعطاة.

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

each_line(separator=$/ [, getline_args]) {|substr| block }  str
each_line(separator=$/ [, getline_args])  an_enumerator

المعاملات

separator

الفاصل المستعمل في تقطيع السلسلة النصية المعطاة إلى أجزاء. القيمة الافتراضية هي: /$ (فاصل سطر جديد). إن أعطي فاصل معدوم الطول (zero-length)، فستُقتطَع السلسلة النصية إلى فقرات محدَّدة عبر عدة محارف سطر جديد متتالية.

getline_args

اطلع على توثيق التابع IO.readlines لمزيد من التفاصيل حول هذا المعامل.

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

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

أمثلة

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

print "Example one\n"
"hello\nworld".each_line {|s| p s}
print "Example two\n"
"hello\nworld".each_line('l') {|s| p s}
print "Example three\n"
"hello\n\n\nworld".each_line('') {|s| p s}

ينتج عن تنفيذ هذا المثال:

Example one
"hello\n"
"world"
Example two
"hel"
"l"
"o\nworl"
"d"
Example three
"hello\n\n"
"world"

انظر أيضًا

  • التابع each_byte: يُمرر كل بايت من بايتات السلسلة النصية التي استدعي معها إلى الكتلة المُعطاة.
  • التابع each_char: يُمرر كل محرف من محارف السلسلة النصية التي استدعي معها إلى الكتلة المُعطاة.
  • التابع each_grapheme_cluster: يمرِّر كل وحدة كتابية (grapheme) إلى الكتلة المعطاة ثم يعيد سلسلة نصية بالناتج الذي تعيده.

مصادر