Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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,我有一个返回散列的方法。我想通过这个方法重复五次,将结果收集到一个数组中。现在,我试着这样做: votes = 5.times.collect{ create_vote }.inject{|memo, vote| memo << vote} 投票=5次。收集{create_vote}。注入{memo,投票{memo怎么样: votes = (1..5).collect { create_vote } 那么: votes = (1..5).collect { create_vote

我有一个返回散列的方法。我想通过这个方法重复五次,将结果收集到一个数组中。现在,我试着这样做:

votes = 5.times.collect{ create_vote }.inject{|memo, vote| memo << vote}
投票=5次。收集{create_vote}。注入{memo,投票{memo怎么样:

votes = (1..5).collect { create_vote }
那么:

votes = (1..5).collect { create_vote }
是的:

更一般地说,将每个\u与\u对象一起使用

votes = 5.times.collect { create_vote }.each_with_object([]) {|o,memo| memo << o }
votes=5.times.collect{create_vote}。每个_对象([]){o,memo | memo是:

更一般地说,将每个\u与\u对象一起使用

votes = 5.times.collect { create_vote }.each_with_object([]) {|o,memo| memo << o }
votes=5.times.collect{create_vote}。每个带有_对象([]){o,memo | memo在范围上使用#映射,而不是在fixnum上使用#次

(0..5).map { create_vote }
或者,从times映射一个数组

5.times.map { create_vote }
每一个都将为您提供一个包含5个元素的数组。

在范围上使用#map,而不是在fixnum上使用#times

(0..5).map { create_vote }
或者,从times映射一个数组

5.times.map { create_vote }

每一个都将为您提供一个包含5个元素的数组。

我尝试使用公认的答案,但后来告诉我使用
数组会更快。新的
如:

votes = Array.new(5) { create_vote }

我尝试使用公认的答案,但随后告诉我使用
数组会更快。新的
如:

votes = Array.new(5) { create_vote }

injection([]){| memo,vote | memo确实如此,但是如果你使用正确的方法,你的意图会更清晰。
injection([]){| memo,vote | memo确实如此,但是如果你使用正确的方法,你的意图会更清晰。