Robert Klemme
8/30/2008 12:09:00 PM
On 30.08.2008 13:45, Kless wrote:
> Thanks! I was too complicated:
>
> irb(main):001:0> foo = ['a', 'b', 'c']
> => ["a", "b", "c"]
> irb(main):002:0> s = ''
> => ""
> irb(main):003:0> foo.each {|x| s += x.to_s + ', '}
> => ["a", "b", "c"]
> irb(main):004:0> puts s[0..-3]
> a, b, c
> => nil
If you want to do it manually, I'd rather do something like this:
irb(main):004:0> s = ""
=> ""
irb(main):005:0> foo.each_with_index {|x,i| s << ", " unless i == 0; s
<< i.to_s}
=> ["a", "b", "c"]
irb(main):006:0> s
=> "0, 1, 2"
irb(main):007:0>
Or even
irb(main):010:0> foo.inject {|a,b| "#{a}, #{b}"}
=> "a, b, c"
irb(main):011:0> ["a"].inject {|a,b| "#{a}, #{b}"}
=> "a"
irb(main):012:0> [].inject {|a,b| "#{a}, #{b}"}
=> nil
irb(main):013:0>
But note the empty Array case.
Kind regards
robert