rubyでmap_with_indexとかやりたい
よく忘れるのでメモ
ruby-1.8.7-p174 :001 > a = %w(a b c d e f g) => ["a", "b", "c", "d", "e", "f", "g"] ruby-1.8.7-p174 :002 > a.each_with_index.map{|v, i| "#{i}: #{v}"} => ["0: a", "1: b", "2: c", "3: d", "4: e", "5: f", "6: g"] ruby-1.8.7-p174 :009 > a.each_with_index => #<Enumerable::Enumerator:0x100330940>
each_with_indexにブロックを渡さないとEnumerableを返すので、そのまま map すれば良い
簡単!
後Enumerable関係の話で、hash を inject する時に、毎回こんなことしてたけど、
hash.inject('') do |r, obj| k,v = obj r += "#{k}:#{v} end
こう書いた方がスマートになることに最近気がついた
hash.inject(''){|r, (k, v)| r += "#{k}:#{v} "}