التابع gets
الخاص بالصنف Kernel
في روبي
يجلب التابع 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...
، باستثناء أنه سيتم تحديث_$
في حال حدوث استبدال.