2

在 Ruby 中,有没有办法确定方法的名称,类似于“类”方法如何返回对象的类型?

例如:

def example_method
  puts method_name
end

#=> "example_method"
4

1 回答 1

3

试试这个方法,从这里

module Kernel
 private
  def current_method_name
    caller[0] =~ /`([^']*)'/ and $1
  end
end


class Foo
 def test_method
   current_method_name   # "test_method"
 end
end

这适用于旧版本的 Ruby (< 1.9)。对于较新的版本,请参阅Ben在此处突出显示的另一个 StackOverflow 答案。

于 2009-04-08T04:59:55.523 回答