当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Object.method用法及代码示例


本文简要介绍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-lang.org大神的英文原创作品 Object.method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。