當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。