Rubyのタップメソッドの利点 質問する

Rubyのタップメソッドの利点 質問する

ちょうどブログ記事を読んでいたところ、著者が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

おすすめ記事