上級 › キーワード引数を委譲するメソッドで ** を付け忘れると ArgumentError になる › パターン4
キーワード引数を委譲するメソッドで ** を付け忘れると ArgumentError になる
受け取ったキーワード引数(**optionsで受けたハッシュ)をそのまま別のメソッドに渡すには、呼び出し側でも**を付けて展開する必要があります。
1 def build_url(scheme:, path:) 2 "#{scheme}://#{path}" 3 end 4 5 def wrapper(**opts) 6 build_url________ ^ 7 end 8 9 puts wrapper(scheme: "https", path: "example.com")
main.rb:1:in `build_url': wrong number of arguments (given 1, expected 0; required keywords: scheme, path) (ArgumentError)
from main.rb:6:in `wrapper'
from main.rb:9:in `<main>'
空欄を埋めて実行を通す
キーワード引数だけを受け取るメソッドに、展開していないハッシュを渡すと引数の形が一致しません。
次の問題