Ruby 2.7がリリースされたばかりで、「位置引数とキーワード引数の分離」に関するこれらの新しい警告が付属しています(リリースポストを参照)。私はそれで遊んでいて、理解できない別の警告があることを発見しました。
例:
def multiply(x:, y:)
x * y
end
args = { x: 2, y: 3 }
multiply(args)
# ./warning.rb:7: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
# ./warning.rb:1: warning: The called method `multiply' is defined here
サポート終了についての最初の警告は明らかだと思いますが、2番目の警告The called method `multiply' is defined hereは私を混乱させます。
2番目の警告はどういう意味ですか?最初の警告に関連していますか?
**呼び出しに追加すると、両方の警告が消えます(multiply(**args))。
1
誰でもこれらの警告を抑制する方法を知っていますか?ログファイルへの書き込みを非推奨にする警告がありますが、これらの警告には影響しません。スペックの実行はルビー2.7.0の悪夢
—
カール