本文简要介绍ruby语言中 UnboundMethod.bind
的用法。
用法
bind(obj) → method
将 umeth
绑定到 obj
。如果 Klass 是从中获得umeth
的类,则obj.kind_of?(Klass)
必须为真。
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
相关用法
- Ruby UnboundMethod.original_name用法及代码示例
- Ruby UnboundMethod.parameters用法及代码示例
- Ruby UnboundMethod.inspect用法及代码示例
- Ruby UnboundMethod.to_s用法及代码示例
- Ruby UnboundMethod.owner用法及代码示例
- Ruby UnboundMethod.clone用法及代码示例
- Ruby UnboundMethod.arity用法及代码示例
- Ruby UnboundMethod类用法及代码示例
- Ruby UndefinedConversionError.source_encoding用法及代码示例
- Ruby UncaughtThrowError类用法及代码示例
- Ruby UnwindDetails.all_requirements用法及代码示例
- Ruby UnwindDetails.reversed_requirement_tree_index用法及代码示例
- Ruby UncaughtThrowError.new用法及代码示例
- Ruby UnwindDetails.unwinding_to_primary_requirement?用法及代码示例
- Ruby UnpackCommand.get_path用法及代码示例
- Ruby UnwindDetails.sub_dependencies_to_avoid用法及代码示例
- Ruby UndefinedConversionError.error_char用法及代码示例
- Ruby URI.parse用法及代码示例
- Ruby UID.change_privilege用法及代码示例
- Ruby Util.unescape用法及代码示例
- Ruby Util.url_encode用法及代码示例
- Ruby UNIXSocket.new用法及代码示例
- Ruby UNIXSocket.addr用法及代码示例
- Ruby URI模块用法及代码示例
- Ruby UNIXServer.accept用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 UnboundMethod.bind。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。