RubyのObjectクラスにある割にはそこまで注目されないメソッドの1つに、#tapがあります。使ってみたところ、個人的にはメリットがあるなと思いました。 返り値にするオブジェクトを組み上げる よく、 def some_method a = [] a << hoge a.concat piyo(:fuga) a[0] = false a end のような、返り値オブジェクトを組み立てるようなメソッドを書く場面がありますが、ときおり最後のaを書き忘れてでたらめなオブジェクトを返してしまうことがあります(Ruby以外では明示的なreturnが必要なので、忘れることはふつう起きませんが)。ここにObject#tapを使うと、