12
1
章
Ruby
ひとめぐり
を渡して評価し、それらの結果を連結するのに使われます。
>>
['one', 'two', 'three'].map(&:chars)
=> [["o", "n", "e"], ["t", "w", "o"], ["t", "h", "r", "e", "e"]]
>>
['one', 'two', 'three'].flat_map(&:chars)
=> ["o", "n", "e", "t", "w", "o", "t", "h", "r", "e", "e"]
もうひとつの便利なメソッドが
#inject
です。これはコレクションの各値をブロックに渡して評価
し、それらの結果を最終結果に累積していきます。
>>
(1..10).inject(0) { |result, number| result + number }
=> 55
>>
(1..10).inject(1) { |result, number| result
*
number }
=> 3628800
>>
['one', 'two', 'three'].inject('Words:') { |result, word| "#{result} #{word}" }
=> "Words: one two three"
1.6.8
Struct
Struct
は特別なRubyクラスで、他のクラスを作るのに使われます。
Struct
によって生成された
クラスには、
Struct.new
に渡された各属性名のゲッター(getter ...