التابع IO.gets
في روبي
يقرأ التابع gets
السطر التالي من مجرى د/خ. السطور مفصولة بالوسيط sep
(انظر فقرة البنية العامة). إن كان الفاصل يساوي nil
، فسيقرأ المحتويات بالكامل، أما إن كان معدوم الطول، فستُقرؤ فقرة في كل مرة من مجرى الإدخال (تُفصل الفقرات بسطرين منفصلين).
يجب أن يكون المجرى مفتوحًا في وضعية القراءة أو سيُرفع استثناء IOError
.
سيُعاد السطر المقروء، وستُحال قيمته على المتغير $_
. أو ستعاد القيمة nil
إن استُدعي التابع gets
عند نهاية الملف.
إن كان الوسيط الأول عددًا صحيحًا أو إن أعطي الوسيط الاختياري الثاني، فلن تكون السلسلة النصية المعادة أطول من القيمة المحددة من حيث عدد البايتات.
File.new("testfile").gets #=> "This is line one\n"
$_ #=> "This is line one\n"
File.new("testfile").gets(4)#=> "This"
إن كان مجرى د/خ يحتوي على حروف متعددة البايتات، فستعيد gets(1)
الحرف بالكامل.
البنية العامة
gets(sep=$/ [, getline_args]) → string or nil
gets(limit [, getline_args])→ string or nil
gets(sep, limit [, getline_args]) → string or nil
المعاملات
sep
فاصل
limit
عدد صحيح يمثل الحد الأٌقصى لعدد البايتات المقروءة.
القيمة المُعادة
سيُعاد السطر المقروء، أو ستعاد القيمة nil
إن استُدعي التابع gets
عند نهاية الملف.
أمثلة
مثال على استخدام التابع gets
:
# الحروف الروسية تأخذ بتتين
File.write("testfile", "\u{442 435 441 442}")
File.open("testfile") {|f|f.gets(1)} #=> "\u0442"
File.open("testfile") {|f|f.gets(2)} #=> "\u0442"
File.open("testfile") {|f|f.gets(3)} #=> "\u0442\u0435"
File.open("testfile") {|f|f.gets(4)} #=> "\u0442\u0435"
انظر أيضا
- التابع
getc
: يقرأ سلسلة نصية مُؤلفة من حرف واحد من مجرى د/خ - التابع
inspect
: يُعيد سلسلة نصية تصف مجرى د/خ الذي استُدعي معه.