Ruby 2.7 baru saja dirilis dan muncul peringatan baru untuk "Pemisahan argumen posisi dan kata kunci" (lihat Posting Rilis mereka ). Saya bermain-main dengannya dan menemukan bahwa ada peringatan lain, yang saya tidak mengerti.
Contoh:
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
Saya pikir peringatan pertama tentang penghinaan itu jelas, tetapi peringatan kedua The called method `multiply' is defined heremembingungkan bagi saya.
Apa arti peringatan kedua? Apakah ini terkait dengan peringatan pertama?
Kedua peringatan hilang saat menambahkan **ke panggilan ( multiply(**args)).