الفرق بين المراجعتين ل"Ruby/Module/undef method"

من موسوعة حسوب
< Ruby‏ | Module
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>undef_method‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: التابع <code>Module.undef_method‎</code> في روبي}}</noinclude>
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Module]]
+
[[تصنيف: Ruby Module Class]]
يمنع التابع <code>undef_method</code> الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. على النقيض من التابع <code>[[Ruby/Module/remove method|remove_method]]</code>، والذي يحذف التابع من الصنف المعين؛ سيبحث روبي في الأصناف الأبوية (superclasses) وفي الوحدات المختلطة (mixed-in modules) عن مُستقبِل (receiver) محتمل.
+
يمنع التابع <code>undef_method</code> الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. سلوك هذا التابع مخالف لسلوك التابع <code>[[Ruby/Module/remove method|remove_method]]</code> الذي يحذف التابع من الصنف المعين؛ ستبحث روبي في الأصناف العليا (superclasses) وفي الوحدات المختلطة (mixed-in modules) عن مُستقبِل (receiver) محتمل.
 
 
تُحول الوسائط النصية إلى رموز.
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">undef_method(symbol) → self
 
<syntaxhighlight lang="ruby">undef_method(symbol) → self
سطر 11: سطر 9:
 
==المعاملات==
 
==المعاملات==
 
===<code>symbol‎</code>===
 
===<code>symbol‎</code>===
رمز يمثل التابع.
+
[[Ruby/Symbol|رمز]] يمثل التابع.
  
 
===<code>string‎</code>===
 
===<code>string‎</code>===
سلسلة نصية تمثل التابع.
+
[[Ruby/String|سلسلة نصية]] تمثل التابع. يحول هذا المعامل إن أعطي إلى [[Ruby/Symbol|رمز]].
==القيمة المُعادة==
+
==القيمة المعادة==
يعيد لتابع <code>undef_method</code> الكائن الذي استُدعي معه.
+
يعاد الكائن المعطى نفسه.
  
 
==أمثلة==
 
==أمثلة==
سطر 38: سطر 36:
 
   undef_method :hello  # prevent any calls to 'hello'
 
   undef_method :hello  # prevent any calls to 'hello'
 
end
 
end
c.hello‎</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">In child
+
c.hello‎</syntaxhighlight>ناتج تنفيذ الشيفرة هو:<syntaxhighlight lang="text">In child
 
In parent
 
In parent
 
prog.rb:23: undefined method `hello' for #<Child:0x401b3bb4> (NoMethodError)‎</syntaxhighlight>
 
prog.rb:23: undefined method `hello' for #<Child:0x401b3bb4> (NoMethodError)‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
*التابع <code>[[Ruby/Module/to s|remove_method]]</code>: يزيل <code>remove_method</code> التابع المحدد بواسطة الوسيط <code>symbol</code> (انظر فقرة البنية العامة) من الصنف الحالي. للحصول على أمثلة، انظر صفحة<code>[[Ruby/Module/undef method|undef_method]]</code>.
+
*التابع <code>[[Ruby/Module/to s|remove_method]]</code>: يزيل تابعًا ذا اسم محدَّد من الصنف الحالي.
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-undef_method قسم التابع undef_method‎ في الصنف Module‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-undef_method قسم التابع undef_method‎ في الصنف Module‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 17:50، 19 نوفمبر 2018

يمنع التابع undef_method الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. سلوك هذا التابع مخالف لسلوك التابع remove_method الذي يحذف التابع من الصنف المعين؛ ستبحث روبي في الأصناف العليا (superclasses) وفي الوحدات المختلطة (mixed-in modules) عن مُستقبِل (receiver) محتمل.

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

undef_method(symbol)  self
undef_method(string)  self

المعاملات

symbol‎

رمز يمثل التابع.

string‎

سلسلة نصية تمثل التابع. يحول هذا المعامل إن أعطي إلى رمز.

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

يعاد الكائن المعطى نفسه.

أمثلة

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

class Parent
  def hello
    puts "In parent"
  end
end
class Child < Parent
  def hello
    puts "In child"
  end
end
c = Child.new
c.hello
class Child
  remove_method :hello  # remove from child, still in parent
end
c.hello
class Child
  undef_method :hello   # prevent any calls to 'hello'
end
c.hello

ناتج تنفيذ الشيفرة هو:

In child
In parent
prog.rb:23: undefined method `hello' for #<Child:0x401b3bb4> (NoMethodError)‎

انظر أيضا

  • التابع remove_method: يزيل تابعًا ذا اسم محدَّد من الصنف الحالي.

مصادر