الفرق بين المراجعتين لصفحة: «Ruby/Module/undef method»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>undef_method | <noinclude>{{DISPLAYTITLE: التابع <code>Module.undef_method</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Module]] | [[تصنيف: Ruby Module Class]] | ||
يمنع التابع <code>undef_method</code> الصنف الحالي من الاستجابة للاستدعاءات الموجهة إلى التابع المعطى. | يمنع التابع <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|رمز]]. | ||
==القيمة | ==القيمة المعادة== | ||
يعاد الكائن المعطى نفسه. | |||
==أمثلة== | ==أمثلة== | ||
سطر 38: | سطر 36: | ||
undef_method :hello # prevent any calls to 'hello' | undef_method :hello # prevent any calls to 'hello' | ||
end | end | ||
c.hello</syntaxhighlight> | 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>[[Ruby/Module/to s|remove_method]]</code>: يزيل تابعًا ذا اسم محدَّد من الصنف الحالي. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-undef_method قسم | *[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
: يزيل تابعًا ذا اسم محدَّد من الصنف الحالي.