الفرق بين المراجعتين ل"Ruby/UnboundMethod/bind"
< Ruby | UnboundMethod
اذهب إلى التنقل
اذهب إلى البحث
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby UnboundMethod]] | [[تصنيف: Ruby UnboundMethod]] | ||
− | يربط | + | يربط <code>bind</code> [[Ruby/UnboundMethod|التابعَ الحرَّ]] الذي استُدعي معه بالكائن <code>obj</code> (انظر فقرة البنية العامة). |
− | + | إذا كان <code>Klass</code> هو الصنف الذي أُنشئ منه [[Ruby/UnboundMethod|التابع الحر]]، فيجب أن يساوي التعبير <code>obj.kind_of?(Klass)</code> القيمة <code>true</code>. | |
− | |||
− | <code> | ||
− | |||
− | < | ||
− | |||
− | |||
− | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">bind(obj) → method</syntaxhighlight> | <syntaxhighlight lang="ruby">bind(obj) → method</syntaxhighlight> | ||
==المعاملات== | ==المعاملات== | ||
===<code>obj</code>=== | ===<code>obj</code>=== | ||
+ | كائن. | ||
+ | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
+ | يعاد تابعَ. | ||
+ | |||
==أمثلة== | ==أمثلة== | ||
مثال على استخدام التابع <code>bind</code>: | مثال على استخدام التابع <code>bind</code>: | ||
سطر 35: | سطر 32: | ||
bm.call | bm.call | ||
bm = um.bind(A.new) | bm = um.bind(A.new) | ||
− | bm.call</syntaxhighlight> | + | bm.call</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">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</syntaxhighlight> | ||
==انظر أيضا== | ==انظر أيضا== | ||
− | + | * التابع <code>[[Ruby/UnboundMethod/clone|clone]]</code>: يعيد <code>clone</code> نسخة من التابع. | |
− | * التابع <code>[[Ruby/UnboundMethod/clone|clone]]</code>: يعيد | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/UnboundMethod.html#method-i-bind قسم التابع bind في الصنف UnboundMethod في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/UnboundMethod.html#method-i-bind قسم التابع bind في الصنف UnboundMethod في توثيق روبي الرسمي.] |
مراجعة 01:21، 8 نوفمبر 2018
يربط bind
التابعَ الحرَّ الذي استُدعي معه بالكائن obj
(انظر فقرة البنية العامة).
إذا كان Klass
هو الصنف الذي أُنشئ منه التابع الحر، فيجب أن يساوي التعبير obj.kind_of?(Klass)
القيمة true
.
البنية العامة
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
الناتج:
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
: يعيدclone
نسخة من التابع.