はじめに Ruby で Hash を扱うとき、merge や merge! を何気なく使っていませんか? params = params.merge(user_id: user.id) この書き方、間違ってはいません。が、不要なオブジェクト生成を招いてることがあります。 この記事では、 merge / merge! の内部的な挙動 既存の Hash がある場合の、より軽量な書き方 について、実例ベースで整理してみます。 背景・動機 Hashを組み立てることは、よくあることだと思います。 例えば、データを加工したい場合 users = [ { id: 1, name: "Taro" }, { i…