التابع catch‎ الخاص بالصنف Kernel في روبي

من موسوعة حسوب
< Ruby‏ | Kernel
مراجعة 16:56، 21 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>catch‎</code> الخاص بالصنف <code>Kernel</code> في روبي}}</noinclude> تصنيف: Ruby تصني...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

ينفذ catch كتلته البرمجية في حال عدم استدعاء throw، فستنفّذ الكتلة بشكل طبيعي، وسيعيد catch قيمة آخر تعبير تم تقييمه.

إذا استُدعي throw(tag2, val) ، فستبحث روبي في المكدس عن كتلة catch حيث tag قيمة object_id الخاص به مساوية لقيمته لدى tag2. عند العثور عليه، يتوقف تنفيذ الكتلة وتُعاد قيمة val (أو nil إذا لم يتم تمرير وسيط ثاني إلى throw).

عند تمرير tag كوسيط أول، ستعيده catch كوسيط للكتلة.

في حال عدم إعطاء وسيط tag، ستعيد catch كائنًا جديدًا فريدًا (كما هو الحال في Object.new) كوسيط للكتلة. يمكن استخدام هذا الكائن حينها كوسيط للتابع throw، وسيتطابق مع كتلة catch الصحيحة.

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

catch([tag]) {|tag| block }   obj

المعاملات

tag‎

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

أمثلة

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

catch(1) { 123 }            # => 123

انظر أيضا

مصادر