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

من موسوعة حسوب
< Ruby‏ | Kernel
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>gets‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...'
 
طلا ملخص تعديل
 
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Kernel]]
[[تصنيف: Ruby Kernel]]
يعيد التابع (ويُحيل على <code>$_</code>) السطر الموالي من قائمة الملفات في <code>ARGV</code> (أو <code>$*</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. ويعيد <code>nil</code> في نهاية الملف. يحدد الوسيط الاختياري فاصل السجل. يتم تضمين الفاصل مع محتويات كل سجل. قي حال كان الوسيط sep يساوي <code>nil</code> فسيقرأ التابع gets كامل المحتوى، أما إذا كان الفاصل معدوم الطول (zero-length) فسيقرأ فقرة واحدة في كل مرة من المدخلات، بحيث تكون الفقرات مقسمة بواسطة سطرين جديدين متتاليين .  إذا كان الوسيط الأول عددًا صحيحًا أو في حالإعطاء الوسيط الثاني الاختياري، فإنّ السلسلة النصية المعادة لن تكون أطول من القيمة المحددة من حيث عدد البتات (bytes).  في حال تمرير عدة أسماء ملفات إلى <code>ARGV</code> ، فسيقرأ <code>gets(nil)</code> محتويات الملفات، واحدًا في كل مرة.
يجلب التابع <code>gets</code> (ويسندها إلى ‎<code>$_‎</code>) السطر التالي من قائمة الملفات في المجرى <code>ARGV</code> (أو <code>$‎‎*</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. يعيد التابع القيمة <code>nil</code> عند الوصول إلى نهاية الملف.  


الناتج:
في حال تمرير عدة أسماء ملفات إلى <code>ARGV</code>، فسيقرأ التابع <code>gets(nil)‎</code> محتويات الملفات، واحدًا في كل مرة بالتتالي.
<syntaxhighlight lang="ruby">This is line one
 
This is line two
أسلوب البرمجة الذي يستخدم <code>$_‎</code> كوسيط ضمني أصبح استخدامه أقل شيوعًا في مجتمع روبي.
This is line three
And so on...‎</syntaxhighlight>
أسلوب البرمجة الذي يستخدم <code>$_</code> كوسيط ضمني صار أقل شيوعًا في مجتمع روبي.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">gets(sep=$/ [, getline_args])  → string or nil
<syntaxhighlight lang="ruby">gets(sep=$/ [, getline_args])  → string or nil
سطر 17: سطر 14:
==المعاملات==
==المعاملات==
===<code>sep‎</code>===
===<code>sep‎</code>===
 
يحدد هذا المعامل الاختياري الحد الفاصل للبيانات المراد جلبها. يتم تضمين الفاصل مع المحتويات المعادة. في حال كانت قيمة المعامل <code>sep</code> تساوي <code>nil</code>، فسيقرأ التابع <code>gets</code> كامل المحتوى، أما إذا كان الفاصل معدوم الطول (zero-length)، فسيقرأ فقرة واحدة من البيانات في كل مرة، بحيث تكون الفقرات مقسمة بسطرين جديدين متتاليين. القيمة الافتراضية لهذا المعامل هي: <code>/$</code> (سطر جديد).
===<code>getline_args‎</code>===
===<code>getline_args‎</code>===
 
يحتوي أسماء الملفات.
===<code>limit‎</code>===
===<code>limit‎</code>===
 
يحدد الطول الأقصى للسلسلة النصية المعادة. إذا كان المعامل الأول عددًا صحيحًا، أو في حال تمرير هذا المعامل الاختياري، فلن تكون السلسلة النصية المعادة أطول من القيمة المحددة من حيث عدد البايتات.
 
==القيمة المعادة==
==القيمة المُعادة==
يعاد السطر التالي (أو جميع البيانات حتى الفاصل <code>sep‎</code> إن أعطي) من قائمة الملفات في المجرى <code>ARGV</code> (أو ‎<code>$‎‎*‎</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. تعاد القيمة <code>nil</code> عند الوصول إلى نهاية الملف. إن حُدِّد المعامل <code>limit‎</code>، فلن يتجاوز حجم البيانات المعادة هذه القيمة.
 
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>gets‎</code>:
مثال على استخدام التابع <code>gets‎</code>:<syntaxhighlight lang="ruby">ARGV << "testfile"
<syntaxhighlight lang="ruby">ARGV << "testfile"
print while gets</syntaxhighlight>يُنتج هذا المثال عند تنفيذ ناتجًا شبيهًا بالناتج التالي:<syntaxhighlight lang="text">This is line one
print while gets
This is line two
‎</syntaxhighlight>
This is line three
And so on...‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/format|format]]</code>: يعيد التابع السلسلة النصية الناتجة من تطبيق format_string على أي وسائط إضافية. داخل السلسلة النصية format_string، ستُنسخ كل الأحرف في النتيجة باستثناء تسلسلات التنسيق (format sequences).
*التابع <code>[[Ruby/Kernel/gsub|gsub]]</code>: يكافئ التعبير ‎<code>$_.gsub...‎</code>، باستثناء أنه سيتم تحديث <code>_$</code> في حال حدوث استبدال.
* التابع <code>[[Ruby/Kernel/global_variables|global_variables]]</code>: يعيد التابع global_variables مصفوفة تضم أسماء المتغيرات الكلية (global variables).
 
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-gets قسم التابع gets‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-gets قسم التابع gets‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 14:31، 15 نوفمبر 2018

يجلب التابع gets (ويسندها إلى ‎$_‎) السطر التالي من قائمة الملفات في المجرى ARGV (أو ‎$‎‎*‎)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. يعيد التابع القيمة nil عند الوصول إلى نهاية الملف.

في حال تمرير عدة أسماء ملفات إلى ARGV، فسيقرأ التابع gets(nil)‎ محتويات الملفات، واحدًا في كل مرة بالتتالي.

أسلوب البرمجة الذي يستخدم ‎$_‎ كوسيط ضمني أصبح استخدامه أقل شيوعًا في مجتمع روبي.

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

gets(sep=$/ [, getline_args])   string or nil
gets(limit [, getline_args]) string or nil
gets(sep, limit [, getline_args])  string or nil

المعاملات

sep‎

يحدد هذا المعامل الاختياري الحد الفاصل للبيانات المراد جلبها. يتم تضمين الفاصل مع المحتويات المعادة. في حال كانت قيمة المعامل sep تساوي nil، فسيقرأ التابع gets كامل المحتوى، أما إذا كان الفاصل معدوم الطول (zero-length)، فسيقرأ فقرة واحدة من البيانات في كل مرة، بحيث تكون الفقرات مقسمة بسطرين جديدين متتاليين. القيمة الافتراضية لهذا المعامل هي: /$ (سطر جديد).

getline_args‎

يحتوي أسماء الملفات.

limit‎

يحدد الطول الأقصى للسلسلة النصية المعادة. إذا كان المعامل الأول عددًا صحيحًا، أو في حال تمرير هذا المعامل الاختياري، فلن تكون السلسلة النصية المعادة أطول من القيمة المحددة من حيث عدد البايتات.

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

يعاد السطر التالي (أو جميع البيانات حتى الفاصل sep‎ إن أعطي) من قائمة الملفات في المجرى ARGV (أو ‎$‎‎*‎)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. تعاد القيمة nil عند الوصول إلى نهاية الملف. إن حُدِّد المعامل limit‎، فلن يتجاوز حجم البيانات المعادة هذه القيمة.

أمثلة

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

ARGV << "testfile"
print while gets

يُنتج هذا المثال عند تنفيذ ناتجًا شبيهًا بالناتج التالي:

This is line one
This is line two
This is line three
And so on...‎

انظر أيضا

  • التابع gsub: يكافئ التعبير ‎$_.gsub...‎، باستثناء أنه سيتم تحديث _$ في حال حدوث استبدال.

مصادر