本文简要介绍ruby语言中 Object.method
的用法。
用法
method(sym) → method
在 obj
中查找命名方法作为接收器,返回一个 Method
对象(或引发 NameError
)。 Method
对象在 obj
的对象实例中充当闭包,因此实例变量和 self
的值仍然可用。
class Demo
def initialize(n)
@iv = n
end
def hello()
"Hello, @iv = #{@iv}"
end
end
k = Demo.new(99)
m = k.method(:hello)
m.call #=> "Hello, @iv = 99"
l = Demo.new('Fred')
m = l.method("hello")
m.call #=> "Hello, @iv = Fred"
请注意, Method
实现了to_proc
方法,这意味着它可以与迭代器一起使用。
[ 1, 2, 3 ].each(&method(:puts)) # => prints 3 lines to stdout
out = File.open('test.txt', 'w')
[ 1, 2, 3 ].each(&out.method(:puts)) # => prints 3 lines to file
require 'date'
%w[2017-03-01 2017-03-02].collect(&Date.method(:parse))
#=> [#<Date: 2017-03-01 ((2457814j,0s,0n),+0s,2299161j)>, #<Date: 2017-03-02 ((2457815j,0s,0n),+0s,2299161j)>]
相关用法
- Ruby Object.methods用法及代码示例
- Ruby Object.instance_variable_get用法及代码示例
- Ruby Object.display用法及代码示例
- Ruby Object.remove_instance_variable用法及代码示例
- Ruby Object.define_singleton_method用法及代码示例
- Ruby Object.public_send用法及代码示例
- Ruby Object.xmp用法及代码示例
- Ruby Object.singleton_methods用法及代码示例
- Ruby Object.enum_for用法及代码示例
- Ruby Object.freeze用法及代码示例
- Ruby Object.inspect用法及代码示例
- Ruby Object.obj ==用法及代码示例
- Ruby Object.DelegateClass用法及代码示例
- Ruby Object.instance_of?用法及代码示例
- Ruby Object.nil?用法及代码示例
- Ruby Object.instance_variable_defined?用法及代码示例
- Ruby Object.singleton_class用法及代码示例
- Ruby Object.kind_of?用法及代码示例
- Ruby Object.send用法及代码示例
- Ruby Object.itself用法及代码示例
- Ruby Object.to_enum用法及代码示例
- Ruby Object.__id__用法及代码示例
- Ruby Object.is_a?用法及代码示例
- Ruby Object.instance_variable_set用法及代码示例
- Ruby Object.extend用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Object.method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。