التابع undef_method
الخاص بالصنف Module
في روبي
يمنع التابع undef_method
الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. على النقيض من remove_method
، والذي يحذف التابع من الصنف المعين؛ سيبحث روبي في الأصناف الأبوية (superclasses) وفي الوحدات المختلطة (mixed-in modules) عن مُستقبِل (receiver) محتمل. تُحول الوسائط النصية String
إلى رموز.
الناتج:
In child
In parent
prog.rb:23: undefined method `hello' for #<Child:0x401b3bb4> (NoMethodError)
البنية العامة
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
انظر أيضا
- التابع
to_s
: يعيد سلسلة نصية تمثل هذه الوحدة أو الصنف. بالنسبة للأصناف والوحدات الأساسية، سيكون هو الاسم. بالنسبة للمفردات (singletons)، تعاد معلومات عن الأشياء المتعلقة أيضًا. - التابع
using
: يستورد الأصناف المهذبة (class refinements) من الوحدة نحو التعريف الحالي للصنف أو الوحدة.