假设我有一个包含array = ["one", "two", "three"]
等变量的数组。
如何将array[0]
指定为变量?我知道这可能是实现这个的错误方法,但我尝试这样的事情:
var = 10
instance_variable_set("@#{array[0]}", var)
我希望能够致电puts @"#{array[0]}"
,结果会给我10
。
编辑:我正在尝试将数组索引(在本例中为#34; one")设置为新变量,以便稍后我可以在其他方法中调用它。这种方式set!
适用于稍后在数组不再保持相同值时更改变量。例如,如果将"one"
设置为值10
的新变量后,如果我得到一个包含["three", "two", "one"]
的数组,我希望能够调用puts array[2]
并且它给出我10
。
答案 0 :(得分:2)
在大多数语言中将其设置为数组:
array[0] = var
答案 1 :(得分:0)
如果要设置实例变量,可以调用@var = array[0]
答案 2 :(得分:0)
eval "@#{array[0]} = var"
p @one
=> 10
或
eval "p @#{array[0]}"
=> 10
作为推子暗指出,eval具有潜在的危险性,特别是如果值来自用户输入。如果用户输入“rm -rf /`”字符串怎么办?您现在已经清除了根文件夹中的所有内容。