ruby - 访问 self.method_added 中的变量名

标签 ruby metaprogramming

我相信 Ruby,有一种方法可以访问 block 中所有局部变量的名称。

def some_method(param1, param2)
  p local_variables
end

每当调用“some_method”时,param1 和 param2 将被打印出来。不是值(value)!但是变量名。

现在,我想在 self.method_added 内实现相同的结果。

只要定义了一个方法,就会调用 self.method_added。我希望能够访问在 self.method_added 中定义的方法的局部变量的名称。例如,

def self.method_added(method_name)
   #prints the variables names of the argument for method method_name
end

def do_something param1, param2
   #crazy stuff
end 

使用上面的代码,当创建 do_something 时,我想访问变量名称“param1”和“param2”

有办法吗?

最佳答案

def self.method_added(method_name)
  p self.instance_method(method_name.to_sym).parameters.collect{|g| g[1]}
end

关于ruby - 访问 self.method_added 中的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239623/

相关文章:

Rubymine 无法识别已安装的 gem

ruby - 如何用 Selenium 滚动

c - 使用 rb_require 和 rb_protect 在 C 中嵌入 Ruby

Scala:无样板的拉皮条

c++ - 您如何比较两个未知数以查看它们在特例模板中是否相等?

perl - 如何将数组元素数组(不同长度)转换为树/哈希

ruby - 我怎样才能找出安装的 ruby 版本?

ruby-on-rails - 目录 : How to authenticate user before POST

haskell - 根据 Data 类型类定义 fmap

parallel-processing - 宏中的 RemoteChannel 正在停滞