2017-08-24 16 views

答えて

4

使用tap

p [1, 2].tap &.each { "foo" } # => [1, 2] 

それは、ブロックに自己を生成して、自己を返します。

は、単に各行った後に自己を返すカスタムメソッド作成することができ(好ましくない)別のオプション:p以来p(..)に括弧を使用するのに十分な可能性があり、あなたが求めている場合について

class Array 
    def each_with_self 
    each { |x| yield x } 
    self 
    end 
end 

p [1, 2].each_with_self { "foo" } # => [1, 2] 
1

を結果として引数を返します。

p([1, 2]).each{ "foo" } 

pのこの挙動は、すなわち、式の途中で簡単に検査を行うfoo(p(bar), baz)foo(bar, baz)を変化させるのに役立ちます。

#eachは、ほとんどの場合値が使用されていないため、コードではnilを返すと決定しました。これにより、1日の終わりにいくつかの組合が生成されることも防止されます。