Ruby 2.7 è stato appena rilasciato e viene fornito con questi nuovi avvertimenti per "Separazione di argomenti posizionali e parole chiave" (vedere il loro Post di rilascio ). Ci stavo giocando e ho scoperto che c'è un altro avvertimento, che non capisco.
Esempio:
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
Penso che il primo avvertimento sulla deprecazione sia chiaro, ma il secondo avvertimento The called method `multiply' is defined here
mi confonde.
Cosa significa il secondo avviso? È legato al primo avvertimento?
Entrambi gli avvisi scompaiono quando si aggiunge **
alla chiamata ( multiply(**args)
).