التابع Module.undef_method
في روبي
يمنع التابع 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
: يزيل تابعًا ذا اسم محدَّد من الصنف الحالي.