ちょうどブログ記事を読んでいたところ、著者がtap
次のようなスニペットを使用していることに気付きました。
user = User.new.tap do |u|
u.username = "foobar"
u.save!
end
私の質問は、 を使用することによる利点やメリットは正確には何なのかということですtap
。次のようにすればよいのではないでしょうか。
user = User.new
user.username = "foobar"
user.save!
あるいはもっと良いのは:
user = User.create! username: "foobar"
ベストアンサー1
読者が次のようなことに遭遇したとき:
user = User.new
user.username = "foobar"
user.save!
3 行すべてに従うと、 という名前のインスタンスを作成しているだけであることがわかりますuser
。
もしそうなら:
user = User.new.tap do |u|
u.username = "foobar"
u.save!
end
そうすれば、すぐに明らかになります。読者は、インスタンスが作成されたことを認識するために、ブロック内の内容を読む必要はありませんuser
。