在 Ruby 中,有没有办法确定方法的名称,类似于“类”方法如何返回对象的类型?
例如:
def example_method
puts method_name
end
#=> "example_method"
在 Ruby 中,有没有办法确定方法的名称,类似于“类”方法如何返回对象的类型?
例如:
def example_method
puts method_name
end
#=> "example_method"
试试这个方法,从这里:
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 答案。