الفرق بين المراجعتين ل"Ruby/TracePoint/defined class"
< Ruby | TracePoint
اذهب إلى التنقل
اذهب إلى البحث
جميل-بيلوني (نقاش | مساهمات) ط (مراجعة وتدقيق.) |
|||
سطر 1: | سطر 1: | ||
− | <noinclude>{{DISPLAYTITLE: التابع <code>defined_class | + | <noinclude>{{DISPLAYTITLE: التابع <code>TracePoint.defined_class</code> في روبي}}</noinclude> |
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
سطر 14: | سطر 14: | ||
end.enable do | end.enable do | ||
C.new.foo | C.new.foo | ||
− | end</syntaxhighlight>'''ملحوظة''': | + | end</syntaxhighlight>'''ملحوظة''': يُعيد التابع <code>defined_class</code> صنفًا مفردًا (singleton class). |
− | + | وسيط الكتلة السادس في التابع <code>[[Ruby/Kernel/set_trace_func|Kernel.set_trace_func]]</code> يُمرَّر الصنف الأصليً (original class) للكائن عبر الصنف المفرد. هذا أحد الفوارق بين <code>[[Ruby/Kernel/set_trace_func|Kernel.set_trace_func]]</code> و <code>[[Ruby/TracePoint|TracePoint]]</code>. | |
− | |||
− | وسيط الكتلة السادس في التابع <code>[[Ruby/Kernel/set_trace_func|Kernel | ||
− | |||
− | هذا أحد الفوارق بين | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">defined_class()</syntaxhighlight> | <syntaxhighlight lang="ruby">defined_class()</syntaxhighlight> | ||
− | ==القيمة | + | ==القيمة المعادة== |
− | + | يعاد صنف أو وحدة التابع المُستدعى. | |
==أمثلة== | ==أمثلة== | ||
سطر 34: | سطر 30: | ||
C.foo | C.foo | ||
end</syntaxhighlight> | end</syntaxhighlight> | ||
− | ==انظر | + | ==انظر أيضًا== |
− | * التابع <code>[[Ruby/TracePoint/callee_id|callee_id]]</code>: يُعيد | + | * التابع <code>[[Ruby/TracePoint/callee_id|callee_id]]</code>: يُعيد اسم الاستدعاء الخاص بالتابع الذي يتم استدعاؤه. |
==مصادر== | ==مصادر== | ||
− | *[http://ruby-doc.org/core-2.5.1/TracePoint.html#method-i-defined_class قسم | + | *[http://ruby-doc.org/core-2.5.1/TracePoint.html#method-i-defined_class قسم التابع defined_class في الصنف TracePoint في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 05:42، 8 ديسمبر 2018
يُعيد التابع defined_class
صنف أو وحدة التابع المُستدعى.
class C; def foo; end; end
trace = TracePoint.new(:call) do |tp|
p tp.defined_class #=> C
end.enable do
C.new.foo
end
إذا تم تعريف التابع بواسطة وحدة، فستعاد تلك الوحدة.
module M; def foo; end; end
class C; include M; end;
trace = TracePoint.new(:call) do |tp|
p tp.defined_class #=> M
end.enable do
C.new.foo
end
ملحوظة: يُعيد التابع defined_class
صنفًا مفردًا (singleton class).
وسيط الكتلة السادس في التابع Kernel.set_trace_func
يُمرَّر الصنف الأصليً (original class) للكائن عبر الصنف المفرد. هذا أحد الفوارق بين Kernel.set_trace_func
و TracePoint
.
البنية العامة
defined_class()
القيمة المعادة
يعاد صنف أو وحدة التابع المُستدعى.
أمثلة
مثال على استخدام التابع defined_class
:
class C; def self.foo; end; end
trace = TracePoint.new(:call) do |tp|
p tp.defined_class #=> #<Class:C>
end.enable do
C.foo
end
انظر أيضًا
- التابع
callee_id
: يُعيد اسم الاستدعاء الخاص بالتابع الذي يتم استدعاؤه.