Rubyリファレンス: Home

tap (Object)

Edit   History

Ruby 1.8.7 Ruby 1.9

標準クラス・モジュール > Object > tap

obj.tap {|myself| block }

tapメソッドは、ブロック変数にレシーバ自身を入れてブロックを実行します。戻り値はレシーバ自身です。メソッドチェーンの中にtapメソッドをはさみ込み、ソースコードを簡潔にする目的で使われます。

次の例は、文字列中の文字のコードを10進数と16進数で表示するものです。

arr = "hello".bytes.to_a
p arr
arr = arr.collect {|byte| byte.to_s(16) }
p arr

この例は、tapメソッドを使えば次のように書けます。

"hello".bytes.to_a.tap {|arr| p arr }
  .collect {|byte| byte.to_s(16) }.tap {|arr| p arr }
[104, 101, 108, 108, 111]
["68", "65", "6c", "6c", "6f"]