我想创建动态variable
并为其分配值。这是我到目前为止尝试的快速示例。
array = %w(this is a test)
array.each_with_index do |c,v|
puts "variable_#{v}".to_sym
end
这给了我这样的输出:
# variable_0
# variable_1
# variable_2
# variable_3
但是当我尝试分配如下的值时:
array.each_with_index do |c,v|
puts "variable_#{v}".to_sym = 45 # I want to assign value which will be result of api, here I just pass 45 static
end
这给了我一个错误:
未定义的方法`to_sym =' for" variable_0":String(NoMethodError)
如果我删除.to_sym
,则会出现类似错误:
语法错误,意外' ='
请帮帮我。我怎样才能做到这一点?提前谢谢。
注意:这只是一个示例代码,用于了解如何创建动态变量并为其分配变量。在我的应用程序中,它是一个instance_variable,我想用它们来实现我的目标。
答案 0 :(得分:1)
考虑到您确实需要动态设置实例变量,instance_variable_set
可能对您有帮助。
array.each_with_index do |c,v|
instance_variable_set "@variable_#{v}".to_sym, 45 # `@` indicates instance variable
end
答案 1 :(得分:1)
您可以在数组或散列中收集结果。很难用部分信息给出例子。但是在数组中,您可以按如下方式收集结果:
result_set = array.collect do |c|
45
end
哪个会给你
result_set = ["this", "is", "a", "test"]
对于哈希,让我知道你想要收集什么类型的键和值,以便我可以给你一个特定的例子。 我希望这会对你有所帮助。