التابع gets‎ الخاص بالصنف Kernel في روبي

من موسوعة حسوب
< Ruby‏ | 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...‎، باستثناء أنه سيتم تحديث _$ في حال حدوث استبدال.

مصادر