الفرق بين المراجعتين ل"Ruby/Kernel/gets"

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
ط
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
يعيد التابع <code>gets</code> (ويُحيل على ‎<code>$_‎</code>) السطر الموالي من قائمة الملفات في المجرى <code>ARGV</code> (أو ‎<code>$‎‎*‎</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. ويعيد <code>nil</code> عند نهاية الملف.  
+
يجلب التابع <code>gets</code> (ويسندها إلى ‎<code>$_‎</code>) السطر التالي من قائمة الملفات في المجرى <code>ARGV</code> (أو ‎<code>$‎‎*‎</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. يعيد التابع القيمة <code>nil</code> عند الوصول إلى نهاية الملف.  
  
يحدد الوسيط الاختياري <code>sep</code> فاصل السجل. يتم تضمين الفاصل مع محتويات كل سجل. قي حال كان الوسيط <code>sep</code> يساوي <code>nil</code> فسيقرأ التابع <code>gets</code> كامل المحتوى، أما إذا كان الفاصل معدوم الطول (zero-length)، فسيقرأ فقرة واحدة في كل مرة من المدخلات، بحيث تكون الفقرات مقسمة بسطرين جديدين متتاليين.  إذا كان الوسيط الأول عددًا صحيحًا، أو في حال تمرير الوسيط الثاني الاختياري، فإنّ السلسلة النصية المعادة لن تكون أطول من القيمة المحددة من حيث عدد البتات (bytes).  في حال تمرير عدة أسماء ملفات إلى <code>ARGV</code> ، فسيقرأ <code>gets(nil)‎</code> محتويات الملفات، واحدًا في كل مرة.
+
في حال تمرير عدة أسماء ملفات إلى <code>ARGV</code>، فسيقرأ التابع <code>gets(nil)‎</code> محتويات الملفات، واحدًا في كل مرة بالتتالي.
  
أسلوب البرمجة الذي يستخدم ‎<code>$_‎</code> كوسيط ضمني صار استخدامه أقل شيوعًا في مجتمع روبي.
+
أسلوب البرمجة الذي يستخدم ‎<code>$_‎</code> كوسيط ضمني أصبح استخدامه أقل شيوعًا في مجتمع روبي.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">gets(sep=$/ [, getline_args])  → string or nil
 
<syntaxhighlight lang="ruby">gets(sep=$/ [, getline_args])  → string or nil
سطر 14: سطر 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>ARGV</code> (أو ‎<code>$‎‎*‎</code>)، أو من مجرى الإدخال القياسي في حالة عدم تمرير أي ملفات في سطر الأوامر. ويعيد <code>nil</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</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">This is line one
 
 
This is line two
 
This is line two
 
This is line three
 
This is line three
 
And so on...‎</syntaxhighlight>
 
And so on...‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/gsub|gsub]]</code>: يكافئ التابع gsub التعبير ‎<code>$_.gsub...‎</code>، باستثناء أنه سيتم تحديث <code>$_</code> في حال حدوث استبدال.
+
*التابع <code>[[Ruby/Kernel/gsub|gsub]]</code>: يكافئ التعبير ‎<code>$_.gsub...‎</code>، باستثناء أنه سيتم تحديث <code>_$</code> في حال حدوث استبدال.
 
 
 
==مصادر==
 
==مصادر==
*[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...‎، باستثناء أنه سيتم تحديث _$ في حال حدوث استبدال.

مصادر