الفرق بين المراجعتين لصفحة: «Ruby/String/each line»

من موسوعة حسوب
< Ruby‏ | String
إنشاء الصفحة. هذه الصفحة من مساهمات "كريم حبال".
 
إضافة المحتوى
 
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby String]]
[[تصنيف: Ruby String]]
يعيد التابع <code>each_line</code> ب
يقتطع التابع <code>each_line</code> السلسلة النصية التي استدعيت معه إلى أجزاء (كل جزء يمثِّل سطرًا افتراضيًّا) مفصولة بفاصل محدَّد ثم يمرِّر كل منها على حدة إلى الكتلة المعطاة.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">each_line(separator=$/ [, getline_args]) {|substr| block } → str
<syntaxhighlight lang="ruby">each_line(separator=$/ [, getline_args]) {|substr| block } → str
each_line(separator=$/ [, getline_args]) → an_enumerator</syntaxhighlight>
each_line(separator=$/ [, getline_args]) → an_enumerator</syntaxhighlight>
== المعاملات ==
=== <code>separator</code> ===
الفاصل المستعمل في تقطيع السلسلة النصية المعطاة إلى أجزاء. القيمة الافتراضية هي: <code>/$</code> (فاصل سطر جديد). إن أعطي فاصل معدوم الطول (zero-length)، فستُقتطَع السلسلة النصية إلى فقرات محدَّدة عبر عدة محارف سطر جديد متتالية.
=== <code>getline_args</code> ===
اطلع على توثيق التابع <code>[[Ruby/IO/readlines#getline args.E2.80.8E|IO.readlines]]</code> لمزيد من التفاصيل حول هذا المعامل.


==القيمة المعادة==
==القيمة المعادة==
يعاد  
تعاد [[Ruby/String|سلسلة نصية]] تحوي الناتج الذي تعيده الكتلة <code>block</code> بعد تمرير كل جزء مقتطع من السلسلة النصية المعطاة إليها، أو يعاد كائن من النوع <code>[[Ruby/Enumerator|Enumerator]]</code> إن لم تُعطَ أية كتلة. 


==أمثلة==
==أمثلة==
سطر 18: سطر 26:
"hello\nworld".each_line('l') {|s| p s}
"hello\nworld".each_line('l') {|s| p s}
print "Example three\n"
print "Example three\n"
"hello\n\n\nworld".each_line('') {|s| p s}</syntaxhighlight>
"hello\n\n\nworld".each_line('') {|s| p s}</syntaxhighlight>ينتج عن تنفيذ هذا المثال:<syntaxhighlight lang="text">
==انظر أيضا==
Example one
"hello\n"
"world"
Example two
"hel"
"l"
"o\nworl"
"d"
Example three
"hello\n\n"
"world"
</syntaxhighlight>
 
==انظر أيضًا==
* التابع <code>[[Ruby/String/each byte|each_byte]]</code>: يُمرر كل بايت من بايتات السلسلة النصية التي استدعي معها إلى الكتلة المُعطاة.
* التابع <code>[[Ruby/String/each char|each_char]]</code>: يُمرر كل محرف من محارف السلسلة النصية التي استدعي معها إلى الكتلة المُعطاة.
* التابع <code>[[Ruby/String/each grapheme cluster|each_grapheme_cluster]]</code>: يمرِّر كل وحدة كتابية ([[wikipedia:Grapheme|grapheme]]) إلى الكتلة المعطاة ثم يعيد سلسلة نصية بالناتج الذي تعيده.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-each_line قسم التابع ‎each_line في الصنف String في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/String.html#method-i-each_line قسم التابع ‎each_line في الصنف String في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 09:11، 2 فبراير 2019

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

مصادر