flat_map {|item| ... } -> Enumerator::Lazy
[permalink][rdoc][edit]collect_concat {|item| ... } -> Enumerator::Lazy
-
ブロックの実行結果をひとつに繋げたものに対してイテレートするような Enumerator::Lazy のインスタンスを返します。
["foo", "bar"].lazy.flat_map {|i| i.each_char.lazy}.force #=> ["f", "o", "o", "b", "a", "r"]
ブロックの返した値 x は、以下の場合にのみ分解され、連結されます。
- x が配列であるか、to_ary メソッドを持つとき
- x が each および force メソッドを持つ (例:Enumerator::Lazy) とき
それ以外のときは、x は分解されず、そのままの値として使われます。
[{a:1}, {b:2}].lazy.flat_map {|i| i}.force #=> [{:a=>1}, {:b=>2}]
- [EXCEPTION] ArgumentError:
- ブロックを指定しなかった場合に発生します。
[SEE_ALSO] Enumerable#flat_map