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

من موسوعة حسوب
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>defined_class‎</code> الخاص بالصنف <code>TracePoint</code> في روبي}}</noinclude>
<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/TracePoint/defined_class|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#set_trace_func]]</code> يمرر الصنف الأصليً (original class) للكائن عبر الصنف المفرد.
 
هذا أحد الفوارق بين <code>[[Ruby/Kernel/set_trace_func|Kernel#set_trace_func]]</code> و <code>[[Ruby/TracePoint|TracePoint]]</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">defined_class()</syntaxhighlight>
<syntaxhighlight lang="ruby">defined_class()</syntaxhighlight>
==القيمة المُعادة==
==القيمة المعادة==
يُعيد التابع <code>defined_class</code> صنف أو وحدة التابع المُستدعى.
يعاد صنف أو وحدة التابع المُستدعى.


==أمثلة==
==أمثلة==
سطر 34: سطر 30:
   C.foo
   C.foo
end</syntaxhighlight>
end</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/TracePoint/callee_id|callee_id]]</code>: يُعيد التابع <code>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 قسم التابع defined_class‎ في الصنف TracePoint‎ في توثيق روبي الرسمي.]
*[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: يُعيد اسم الاستدعاء الخاص بالتابع الذي يتم استدعاؤه.

مصادر