التابع bind‎ الخاص بالصنف UnboundMethod في روبي

من موسوعة حسوب

يربط التابع bind التابع الحر umeth بالكائن obj (انظر فقرة البنية العامة). إذا كان Klass هو الصنف الذي استُنسخ منه التابع الحر umeth، فيجب أن يساوي التعبير obj.kind_of?(Klass) القيمة true.


produces:

In test, class = C
In test, class = B
prog.rb:16:in `bind': bind argument must be an instance of B (TypeError)
 from prog.rb:16‎

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

bind(obj)  method

المعاملات

obj‎

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

أمثلة

مثال على استخدام التابع bind‎:

class A
  def test
    puts "In test, class = #{self.class}"
  end
end
class B < A
end
class C < B
end
um = B.instance_method(:test)
bm = um.bind(C.new)
bm.call
bm = um.bind(B.new)
bm.call
bm = um.bind(A.new)
bm.call

انظر أيضا

  • التابع arity: يعيد التابع arity مؤشرا لعدد الوسائط المقبولة من قبل التابع. يعيد عددًا صحيحًا غير سالب للتوابع التي تأخذ عددًا محددًا من الوسائطا. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد -n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعد وسيطاً إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد -1 إن كانت استدعاء تلك التوابع يأخذ عددًا متغيرًا من الوسائط.
  • التابع clone: يعيد التابع clone نسخة من هذا التابع.

مصادر