التابع Object.define_singleton_method في روبي

من موسوعة حسوب
< Ruby‏ | Object

يُعرِّف التابع define_singleton_method تابعًا منفردًا (singleton method) في المستقبل (receiver).

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

define_singleton_method(symbol, method)  symbol
define_singleton_method(symbol) { block }  symbol

المعاملات

symbol

الرمز المُمرَّر إلى التابع والذي سيُعرِّف التابع المنفرد.

method

التابع المُمرَّر كمعامل. يمكن أن يكون هذا التابع كائنًا من النوع proc، أو Method، أو UnboundMethod.

block

وسيط اختياري يمثِّل الكتلة المُمرَّرة إلى التابع. إذا أعطي، فستُنفَّذ الكتلة المعطاة كما لو أنَّها من جسم التابع method.

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

يُعاد تابعٌ منفردٌ يمكن استدعائه في المستقبل.

أمثلة

مثالٌ عن استخدام التابع define_singleton_method:

class A
  class << self
    def class_name
      to_s
    end
  end
end
A.define_singleton_method(:who_am_i) do
  "I am: #{class_name}"
end
A.who_am_i   # ==> "I am: A"

guy = "Bob"
guy.define_singleton_method(:hello) { "#{self}: Hello there!" }
guy.hello    #=>  "Bob: Hello there!"

انظر أيضًا

  • التابع singleton_class: يُعيد صنف الكائن المُنفرد للكائن الذي استدعي معه.
  • التابع singleton_method: يبحث في التوابع المنفردة فقط بطريقة مشابهة للتابع method.
  • التابع singleton_methods: يُعيد مصفوفةً تحوي أسماء توابع الكائن المنفردة.

مصادر