Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中以编程方式创建数组名_Ruby_Arrays - Fatal编程技术网

在Ruby中以编程方式创建数组名

在Ruby中以编程方式创建数组名,ruby,arrays,Ruby,Arrays,我是一名noob程序员,我想知道如何使用另一个数组中的单词列表创建数组名 例如,我想使用以下数组: array = ['fruits','veggies'] 把它变成这样: fruits = [] veggies = [] 在Ruby中实现这一点的最佳方法是什么 这是我的一次尝试,我惨遭失败: variables = ['awesome', 'fantastic', 'neato'] variables.each do |e| e = [] e << [1, 2, 3]

我是一名noob程序员,我想知道如何使用另一个数组中的单词列表创建数组名

例如,我想使用以下数组:

array = ['fruits','veggies']
把它变成这样:

fruits = []
veggies = []
在Ruby中实现这一点的最佳方法是什么

这是我的一次尝试,我惨遭失败:

variables = ['awesome', 'fantastic', 'neato']

variables.each do |e|
  e = []
  e << [1, 2, 3]
end

puts neato
variables=['awesome'、'fantastic'、'neato']
变量。每个变量都有|
e=[]

问题是数组中可能包含一个与局部变量或方法名称匹配的值,而这正是痛苦和困惑开始的时候

可能最好改为构建数组哈希:

variables = ['awesome', 'fantastic', 'neato']
hash = variables.each_with_object({ }) { |k, h| h[k] = [ ] }
或者,如果您没有:

请注意带有和的块中的参数顺序开关,您必须从块返回
h


通过这种方式,您可以使用数组,但也可以通过使用散列作为小型可移植名称空间来保护名称空间。正如Jacob Relkin演示的那样,您可以动态创建变量,但这样做是自找麻烦。如果
变量
的元素最终是非字母数字的,您也可能会遇到问题。

当我使用它运行时,当我尝试打印一个新数组时,会得到一个未定义的方法或变量。例如,我试过:puts awesome.to_,我就知道了error@Melanie,请参阅我的最新答案。你应该可以让它工作。这是为SERP检查程序准备的。用户输入他们的关键字,然后当我用关键字列表搜索Google时,我希望能够获取SERP并将它们放入一个以刚刚搜索的关键字命名的数组中。然后我可以获取每个数组并检查它们的url在列表中的位置。我希望这能很好地解释这一点。
variables = ['awesome', 'fantastic', 'neato']
hash = variables.each_with_object({ }) { |k, h| h[k] = [ ] }
hash = variables.inject({ }) { |h, k| h[k] = [ ]; h }