From: tamouse mailing lists Date: 2013-03-26T03:55:05+09:00 Subject: Choice of methods/implementation (was: Writing a game, trying to make dynamic loops) Since otherwise I'd be hijacking, I'm starting a new thread on this: On Mon, Mar 25, 2013 at 6:52 AM, Robert Klemme wrote: > On Mon, Mar 25, 2013 at 9:40 AM, Hans Mackowiak wrote: >> how about this? >> >> puts "How many players?" >> players = Array.new(gets.to_i) do |n| >> puts "Name of player #{n+1}?" >> Player.new(gets.chomp) >> end > > I'd rather use #times with #map: > > players = Integer(gets).times.map do |i| > puts "Name of player #{n+1}?" > Player.new(gets.chomp) > end Could you say why, Robert? Obviously there's more than one way to do something, but I am interested in why you'd choose this way? I don't very much like the previous Array.new() {} either, although being 1-based might be easier for some to understand, but breaks my oh-so-long-established zero-based array mentality. I'd have approached this with #reduce. I'd appreciate hearing your thoughts on the trade-offs.