الفرق بين المراجعتين ل"Ruby/UnboundMethod/bind"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
ط
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby UnboundMethod]]
 
[[تصنيف: Ruby UnboundMethod]]
يربط <code>bind</code> [[Ruby/UnboundMethod|التابعَ الحرَّ]] الذي استُدعي معه بالكائن الذي مُرِّر إليه.
+
يربط التابع <code>bind</code> [[Ruby/UnboundMethod|التابعَ الحرَّ]] الذي استُدعي معه بالكائن الذي مُرِّر إليه.
  
 
إذا كان <code>Klass</code> هو الصنف الذي أُنشئ منه [[Ruby/UnboundMethod|التابع الحر]]، فيجب أن يساوي التعبير <code>obj.kind_of?(Klass)‎</code> القيمة <code>true</code>.
 
إذا كان <code>Klass</code> هو الصنف الذي أُنشئ منه [[Ruby/UnboundMethod|التابع الحر]]، فيجب أن يساوي التعبير <code>obj.kind_of?(Klass)‎</code> القيمة <code>true</code>.

المراجعة الحالية بتاريخ 07:29، 8 ديسمبر 2018

يربط التابع bind التابعَ الحرَّ الذي استُدعي معه بالكائن الذي مُرِّر إليه.

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

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

bind(obj)  method

المعاملات

obj‎

كائن يراد ربطه بالتابع الحر.

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

يعاد التابع الناتج عن ربط التابع الحر بالكائن 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

الناتج:

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‎

انظر أيضًا

  • التابع clone: يعيد نسخة من التابع.

مصادر