الفرق بين المراجعتين لصفحة: «Ruby/Kernel/callcc»

من موسوعة حسوب
< Ruby‏ | Kernel
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>callcc‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصني...'
 
ط مراجعة وتدقيق
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Kernel]]
[[تصنيف: Ruby Kernel]]
يولد التابع كائنًا من النوع <code>Continuation</code>، والذي يُمرّر إلى الكتلة البرمجية المعطاة. سيكون عليك أن تستورد <code>require
يولد التابع <code>callcc</code> كائنًا من النوع <code>[[Ruby/Continuation|Continuation]]</code>، والذي يُمرّر إلى الكتلة البرمجية المعطاة. تحتاج إلى أن تستورد <code>'continuation'</code> عبر <code>require</code> قبل استخدام هذا التابع.  
'continuation'</code> قبل استخدام هذا التابع. يؤدي تنفيذ cont<code>.call</code> إلى إعادة التابع <code>callcc</code> (كما سيقع خلال نهاية الكتلة). القيمة التي يعيدها <code>callcc</code> هي قيمة الكتلة، أو القيمة المُمرّرة إلى cont<code>.call</code>. انظر صفحة الصف <code>Continuation</code> لمزيد من التفاصيل. انظر أيضًا <code>#throw</code> للتعرف على آلية بديلة لتخفيف مكدس الاستدعاءات (call stack).
 
يؤدي تنفيذ <code>cont.call</code> إلى خروج التابع <code>callcc</code> (كما سيقع خلال نهاية الكتلة). القيمة التي يعيدها <code>callcc</code> هي قيمة الكتلة، أو القيمة المُمرّرة إلى <code>cont.call</code>.  
 
انظر صفحة الصف <code>[[Ruby/Continuation|Continuation]]</code> لمزيد من التفاصيل. انظر أيضًا صفحة التابع <code>[[Ruby/Kernel/throw|throw]]</code> للتعرف على آلية بديلة لتخفيف مكدس الاستدعاءات (call stack).
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">callcc {|cont| block }→  obj‎</syntaxhighlight>
<syntaxhighlight lang="ruby">callcc {|cont| block } →  obj‎</syntaxhighlight>
==القيمة المُعادة==
==القيمة المعادة==
تعاد قيمة المعطاة، أو القيمة المُمرّرة إلى <code>cont.call</code>.


==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Integer/X_name_X|X_name_X]]</code>:  
* التابع <code>[[Ruby/Kernel/caller|caller]]</code>: يعيد مكدس التنفيذ الحالي (execution stack).
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-callcc قسم التابع callcc‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Kernel.html#method-i-callcc قسم التابع callcc‎ في الصنف Kernel‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 11:16، 15 نوفمبر 2018

يولد التابع callcc كائنًا من النوع Continuation، والذي يُمرّر إلى الكتلة البرمجية المعطاة. تحتاج إلى أن تستورد 'continuation' عبر require قبل استخدام هذا التابع.

يؤدي تنفيذ cont.call إلى خروج التابع callcc (كما سيقع خلال نهاية الكتلة). القيمة التي يعيدها callcc هي قيمة الكتلة، أو القيمة المُمرّرة إلى cont.call.

انظر صفحة الصف Continuation لمزيد من التفاصيل. انظر أيضًا صفحة التابع throw للتعرف على آلية بديلة لتخفيف مكدس الاستدعاءات (call stack).

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

callcc {|cont| block }   obj

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

تعاد قيمة المعطاة، أو القيمة المُمرّرة إلى cont.call.

انظر أيضا

  • التابع caller: يعيد مكدس التنفيذ الحالي (execution stack).

مصادر