irb(main):001:0> arr = %w{a b c} => ["a", "b", "c"]
에서 a@0b@1c@2 를 출력한다면,
irb(main):003:0* require "enumerator" => true irb(main):004:0> arr_iter = Enumerable::Enumerator.new(arr, :each_with_index) => #<Enumerable::Enumerator:0x2aaaaabc2bc0> irb(main):005:0> arr_iter.inject("") { |a, (b, i)| a << "#{b}@#{i}" } => "a0@b1@c2@"
이제 [abc, 3]을 출력합니다. 이 때 3은 각 문자의 인덱스 0, 1, 2의 합
irb(main):007:0> arr_iter.inject { |(char_sum, val_sum), (b, i)| [char_sum + b, val_sum + i] } => ["abc", 3]
Leave a Reply