有没有办法在Ruby中获取所有变量?

时间:2009-04-05 06:16:49

标签: ruby variables

有没有办法可以在Ruby中找到以特定字符串开头的所有变量? 例如,我的ruby程序中有以下变量:

ret_d = 1
ret_d2 = 23

是否有一个会返回["ret_d","ret_d2"]的函数?问题是我没有所有变量的集合。

2 个答案:

答案 0 :(得分:15)

Kernel#local_variables应该可以解决问题。

>> ret_d = 1
=> 1
>> ret_d2 = 23
=> 23
>> local_variables
=> ["_", "ret_d", "ret_d2"]
>> local_variables.select{|v|v=~/^ret_/}
=> ["ret_d", "ret_d2"]

答案 1 :(得分:6)

如果它们是局部变量,则可以使用local_variables。然而,这听起来像一个穷人的阵列。您可以考虑使用实际的数组。