Mungkin ada sejumlah kegunaan dan tempat di mana kami dapat menggunakannya tap. Sejauh ini saya hanya menemukan 2 penggunaan berikut tap.
1) Tujuan utama dari metode ini adalah untuk memanfaatkan rantai metode, untuk melakukan operasi pada hasil antara dalam rantai tersebut. yaitu
(1..10).tap { |x| puts "original: #{x.inspect}" }.to_a.
tap { |x| puts "array: #{x.inspect}" }.
select { |x| x%2 == 0 }.
tap { |x| puts "evens: #{x.inspect}" }.
map { |x| x*x }.
tap { |x| puts "squares: #{x.inspect}" }
2) Apakah Anda pernah menemukan diri Anda memanggil metode pada beberapa objek, dan nilai kembaliannya tidak seperti yang Anda inginkan? Mungkin Anda ingin menambahkan nilai arbitrer ke sekumpulan parameter yang disimpan dalam hash. Anda memperbaruinya dengan Hash. [] , Tetapi Anda mendapatkan bilah belakang alih-alih hash params, jadi Anda harus mengembalikannya secara eksplisit. yaitu
def update_params(params)
params[:foo] = 'bar'
params
end
Untuk mengatasi situasi ini di sini, tapmetode ikut bermain. Sebut saja pada objek, lalu lewati tap blok dengan kode yang ingin Anda jalankan. Objek tersebut akan diserahkan ke blok tersebut, kemudian dikembalikan. yaitu
def update_params(params)
params.tap {|p| p[:foo] = 'bar' }
end
Ada lusinan kasus penggunaan lainnya, coba temukan sendiri :)
Sumber:
1) API Dock Object tap
2) lima-ruby-metode-Anda-harus-menggunakan
User.new.tap &:foobar