Ruby3.1からハッシュとキーワード引数の省略記法が使えます。
仕事でコードレビューをしていて「これは何だ?」と思ってしまったので確認しておきたいと思います。
ハッシュの場合
事前にc = 3のようにローカル変数を定義している場合、{ c: }と書くだけで{c: 3}と同じ意味になります。
mapping1 = {
a: 1,
b: 2
}
pp mapping1 # {a: 1, b: 2}
c = 3
mapping2 = {
c:,
d: 4
}
pp mapping2 # {c: 3, d: 4}
キーワード引数の場合
事前にname = "田中"のようにキーワード引数と同じ名前のローカル変数を定義している場合、hello(name:)と書くだけでhello(name: name)と同じ意味になります。
def hello(name:) puts "こんにちは#{name}さん!" end hello(name: "山田") # こんにちは山田さん! name = "田中" hello(name:) # こんにちは田中さん!
参考
『WEB+DB PRESS Vol.127』を読むとこの省略記法が導入された背景もわかって理解が深まります。