1. ホーム
  2. ruby

[解決済み] Rubyにおけるtapメソッドの利点

2022-07-14 04:31:21

質問

あるブログの記事を読んでいて、著者が 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"

どのように解決するのですか?

読者が遭遇したとき。

user = User.new
user.username = "foobar"
user.save!

というインスタンスを生成しているに過ぎないことを認識する必要があります。 user .

もしそうなら

user = User.new.tap do |u|
  u.username = "foobar"
  u.save!
end

であれば、それはすぐに明らかになります。読者はブロックの中身を読まなくても、インスタンス user が作成されることを知ることができます。