本文简要介绍ruby语言中 UnboundMethod类
的用法。
Ruby 支持两种形式的对象化方法。 Class
Method
用于表示与特定对象关联的方法:这些方法对象绑定到该对象。可以使用 Object#method
创建对象的绑定方法对象。
Ruby 还支持未绑定的方法;不与特定对象关联的方法对象。这些可以通过调用 Module#instance_method
或通过在绑定的方法对象上调用 unbind 来创建。这两者的结果都是 UnboundMethod
对象。
未绑定方法只能在绑定到对象后调用。该对象必须是kind_of?方法的原始类。
class Square
def area
@side * @side
end
def initialize(side)
@side = side
end
end
area_un = Square.instance_method(:area)
s = Square.new(12)
area = area_un.bind(s)
area.call #=> 144
未绑定方法是对该方法在对象化时的引用:对基础类的后续更改不会影响未绑定方法。
class Test
def test
:original
end
end
um = Test.instance_method(:test)
class Test
def test
:modified
end
end
t = Test.new
t.test #=> :modified
um.bind(t).call #=> :original
相关用法
- Ruby UnboundMethod.original_name用法及代码示例
- Ruby UnboundMethod.bind用法及代码示例
- Ruby UnboundMethod.parameters用法及代码示例
- Ruby UnboundMethod.inspect用法及代码示例
- Ruby UnboundMethod.to_s用法及代码示例
- Ruby UnboundMethod.owner用法及代码示例
- Ruby UnboundMethod.clone用法及代码示例
- Ruby UnboundMethod.arity用法及代码示例
- 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类。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。