Ruby 嵌套发送

标签 ruby metaprogramming

假设我有一个对象,它有一个访问对象的方法:

def foo
   @foo
end

我知道我可以使用 send 访问该方法:

obj.send("foo")  # Returns @foo

是否有一种直接的方法来执行递归发送以获取@foo 对象上的参数,例如:

obj.send("foo.bar")  # Returns @foo.bar

最佳答案

您可以使用 instance_eval :

obj.instance_eval("foo.bar")

您甚至可以直接访问实例变量:

obj.instance_eval("@foo.bar")

关于Ruby 嵌套发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15862455/

相关文章:

Ruby 调试器在 STDIN 上失败。获取用户输入

ruby - 你如何在 ruby​​ 中发送原始 header

C++模板非类型参数类型推导

c - 知道 void * 分配类型的宏

macros - 为什么宏卫生不能防止多个 const 定义之间的冲突?

ruby - 如何使 Ruby 脚本每秒运行一次?

ruby - 如何在 Ruby 中选择给定范围内的数组元素?

ruby - 在 Ruby 中的字符串中查找特定长度的数字序列

c++ - 如何扩展类模板整数列表?

Java元编程