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确实如此,但是如果你使用正确的方法,你的意图会更清晰。