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