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

من موسوعة حسوب
< Ruby‏ | Kernel
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>loop‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...')
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Kernel]]
 
[[تصنيف: Ruby Kernel]]
ينفذ التابع loop الكتلة البرمجية بشكل متكرر.
+
ينفذ التابع <code>loop</code> الكتلة البرمجية المعطاة بشكل متكرر.
في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف enumerator بدلاً من ذلك.
 
  
يؤدي اطلاق <code>StopIteration</code> داخل الكتلة إلى إيقاف الحلقة التكرارية.  في هذه الحالة، سيعيد التابع loop حلقة بإرجاع قيمة "النتيجة" المخزنة في الاستثناء.
+
في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف <code>[[Ruby/Enumerator|enumerator]]</code> بدلاً من ذلك.
 +
 
 +
يؤدي اطلاق الاستثناء <code>StopIteration</code> داخل الكتلة إلى إيقاف الحلقة التكرارية.  في هذه الحالة، سيعيد التابع <code>loop</code> قيمة "النتيجة" المخزنة في الاستثناء.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">loop { block }
 
<syntaxhighlight lang="ruby">loop { block }
 
loop→ an_enumerator‎</syntaxhighlight>
 
loop→ an_enumerator‎</syntaxhighlight>
 
==القيمة المُعادة==
 
==القيمة المُعادة==
 +
يؤدي اطلاق الاستثناء <code>StopIteration</code> داخل الكتلة،  سيعيد التابع <code>loop</code> قيمة "النتيجة" المخزنة في الاستثناء. أما في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف <code>[[Ruby/Enumerator|enumerator]]</code>.
  
 
==أمثلة==
 
==أمثلة==
سطر 21: سطر 23:
 
end‎</syntaxhighlight>
 
end‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/Kernel/local_variables|local_variables]]</code>: يعيد التابع local_variables أسماء المتغيرات المحلية الحالية.
+
* التابع <code>[[Ruby/Kernel/lambda|lambda]]</code>: يكافئ التابع <code>lambda</code> التعبير <code>Proc.new</code>، باستثناء أنّ كائنات <code>Proc</code> الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها.
* التابع <code>[[Ruby/Kernel/open|open]]</code>: ينشئ التابع open كائنًا من النوع <code>IO</code> متصلا بالمجرى أو الملف أو العملية الفرعية (subprocess) المحددة.
 
  
 
==مصادر==
 
==مصادر==
 
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-loop قسم  التابع loop‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-loop قسم  التابع loop‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

مراجعة 10:42، 22 أكتوبر 2018

ينفذ التابع loop الكتلة البرمجية المعطاة بشكل متكرر.

في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف enumerator بدلاً من ذلك.

يؤدي اطلاق الاستثناء StopIteration داخل الكتلة إلى إيقاف الحلقة التكرارية. في هذه الحالة، سيعيد التابع loop قيمة "النتيجة" المخزنة في الاستثناء.

البنية العامة

loop { block }
loop an_enumerator

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

يؤدي اطلاق الاستثناء StopIteration داخل الكتلة، سيعيد التابع loop قيمة "النتيجة" المخزنة في الاستثناء. أما في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف enumerator.

أمثلة

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

loop do
  print "Input: "
  line = gets
  break if !line or line =~ /^qQ/
  # ...
end

انظر أيضا

  • التابع lambda: يكافئ التابع lambda التعبير Proc.new، باستثناء أنّ كائنات Proc الناتجة ستتحقق من عدد الوسائط الممررة عند استدعائها.

مصادر