从Ruby中获取函数名称

时间:2014-03-06 13:25:25

标签: ruby function

说我有一个功能:

def foo()
puts getFunctionIAMIn()
end

我希望输出为:“foo” 如果我有这个代码:

def foo1()
puts getFunctionIAMIn()
end

我希望输出为:“foo1”

2 个答案:

答案 0 :(得分:5)

使用__method__撰写如下:

def foo()
  puts __method__
end

以上是正确的,但__callee__在技术上听起来更正确。

__method__返回已定义的名称,__callee__返回名为name。They are same usually, but different in a aliased method.

def foo
  [__method__, __callee__]
end

alias bar foo
p foo #=> [:foo, :foo]
p bar #=> [:foo, :bar]

答案 1 :(得分:2)

您可以使用__method__

def test_method
  __method__
end