gpt4 book ai didi

ruby - 如何返回调用方法的字符串名称?

转载 作者:数据小太阳 更新时间:2023-10-29 07:54:31 24 4
gpt4 key购买 nike

现在我的代码是这样工作的:

def method_a
self.method_b ==> 'method_b'
end

def method_b
puts self.name_of_calling_method
end

def name_of_calling_method
if /`(.*)'/.match(caller.first)
return $1
else
return nil
end
end

我如何打印调用方法的名称 - “method_a”,而不是 method_b 打印“method_b”?

最佳答案

当您在 name_of_calling_method 中从 method_b 调用时,method_a 是调用堆栈上层的 1 个条目,因此您需要 caller[ 1]name_of_calling_method 而不是 caller.firstcaller[0]

因为您已将正则表达式放在左侧,将索引放入 caller 中,所以您不需要额外的 nil 检查大小写其中 method_b 被直接调用并且 caller[1]nil - 你的不匹配 else 案例将涵盖它。

关于ruby - 如何返回调用方法的字符串名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2594989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com