TheProgrammer نشر 19 أكتوبر 2015 أرسل تقرير نشر 19 أكتوبر 2015 هل هنالك طريقة في الروبي أستطيع به الحصول على اسم التابع الذي قام باستدعاء تابع آخر؟ مثال:class Test def self.foo Fooz.bar end end class Fooz def self.bar # سوف أحصل على Test.foo أو foo end end اقتباس
0 هشام رزق الله نشر 19 أكتوبر 2015 أرسل تقرير نشر 19 أكتوبر 2015 هنالك عدة طرق للحصول على اسم التابع الذي قام باستدعاء تابع آخر من داخله، فمثلا يُمكننا استعمال caller كما في المثال التالي:puts caller[0] ولتحسين الناتج يمكنك استخدام هذا السطر لحذف ما هو ليس ضروري في الناتج وإظهار اسم التابع التي قام بالاستدعاء فقط:puts caller[0][/`.*'/][1..-2] وإذا كنت تستخدم الإصدار الثاني من الروبي، فيمكنك في هذه الحالة اختصار السطر السابق كما يلي:caller_locations(1,1)[0].label هذه الطريقة أسرع بكثير من الطريقة السابقة.أو يمكنك استخدام ما يلي أيضا للحصول على اسم التابع:caller[0][/`([^']*)'/, 1]المصدر اقتباس
السؤال
TheProgrammer
هل هنالك طريقة في الروبي أستطيع به الحصول على اسم التابع الذي قام باستدعاء تابع آخر؟ مثال:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.