自ら添削
Rubyは色々な書き方ができる。以下のコードを1行で書いてみた
to = [] DATA.each do |line| if /TODO:(.*)/ =~ line to << $1 end end puts to __END__ bbbb cccc hhhh TODO:aaa TODO:bbb TODO:ccc
puts DATA.inject([]) {|a, e| a << $1 if /TODO:(.*)/ =~ e;a} __END__ bbbb cccc hhhh TODO:aaa TODO:bbb TODO:ccc
Array#injectはブロックの結果を次に渡す。
最後のaを書き忘れてて、はまりました。