gpt4 book ai didi

ruby - "newed"我类的类(class)名称

转载 作者:数据小太阳 更新时间:2023-10-29 08:28:42 26 4
gpt4 key购买 nike

在 Ruby 中,有没有办法获取创建 MyClass 实例的类的名称?

我知道我可以将它作为参数传递给我的初始化方法,但我想知道是否已经存在与在 MyClass 的一侧创建 MyClass 实例的类有关的任何数据。

那就是

class MyClass
def initialize
@who_called_me = who_called_me.name
end

def who_called_me
puts @who_called_me
end
end

最佳答案

虽然这在实现和版本之间不可移植,但这是一个粗略的解决方案:

who_made_me=caller[3].split(':')[1][4..-2]

它所做的是获取当前堆栈,跳过 initializeallocatenew 的字符串,然后获取方法字符串中的名称。同样,这完全是黑客攻击,并且基于未指定的行为。除非绝对有必要,否则我不建议使用它。

关于ruby - "newed"我类的类(class)名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8720677/

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