التابع IO.gets‎ في روبي

من موسوعة حسوب
< Ruby‏ | IO

يجلب التابع gets السطر التالي من المجرى الذي استدعي معه.

يجب أن يكون المجرى مفتوحًا في وضعية القراءة وإلا سيُطلَق الاستثناء IOError.

إن كان المجرى يحتوي على حروف متعددة البايتات، فستعيد 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‎

المحرف الفاصل بين الأسطر. القيمة الافتراضية هي: /$. إن كانت قيمته nil، فستُقرَأ آنذاك جميع محتويات المجرى (أي سيمثِّل نهاية المجرى).

limit‎

عدد صحيح يمثل الحد الأٌقصى لعدد البايتات المراد قراءتها. إن كانت قيمته 0، فستُقرَأ فقرة في كل مرة من المجرى (تُفصل الفقرات بسطرين منفصلين).

getline_args

راجع صفحة readlines لمزيد من التفاصيل حول هذا المعامل.

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

ستعاد سلسلة نصية تمثِّل السطر المقروء من المجرى المعطى وستُسنَد قيمتها إلى المتغير ‎$_‎، أو ستعاد القيمة nil عند الوصول إلى نهاية الملف.

أمثلة

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

File.new("testfile").gets   #=> "This is line one\n"
$_                          #=> "This is line one\n"
File.new("testfile").gets(4)#=> "This"‎

مثال على استعمال التابع 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"

انظر أيضًا

مصادر