التابع undef_method
الخاص بالصنف Module
في روبي
يمنع التابع undef_method
الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. على النقيض من التابع remove_method
، والذي يحذف التابع من الصنف المعين؛ سيبحث روبي في الأصناف الأبوية (superclasses) وفي الوحدات المختلطة (mixed-in modules) عن مُستقبِل (receiver) محتمل.
تُحول الوسائط النصية إلى رموز.
البنية العامة
undef_method(symbol) → self
undef_method(string) → self
المعاملات
symbol
رمز يمثل التابع.
string
سلسلة نصية تمثل التابع.
القيمة المُعادة
يعيد لتابع undef_method
الكائن الذي استُدعي معه.
أمثلة
مثال على استخدام التابع 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
: يزيلremove_method
التابع المحدد بواسطة الوسيطsymbol
(انظر فقرة البنية العامة) من الصنف الحالي. للحصول على أمثلة، انظر صفحةundef_method
.