التابع String.each_line
في روبي
يقتطع التابع 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) إلى الكتلة المعطاة ثم يعيد سلسلة نصية بالناتج الذي تعيده.