Ruby 2.7 wurde gerade veröffentlicht und enthält diese neuen Warnungen für "Trennung von Positions- und Schlüsselwortargumenten" (siehe deren Veröffentlichungsbeitrag ). Ich habe damit herumgespielt und festgestellt, dass es eine weitere Warnung gibt, die ich nicht verstehe.
Beispiel:
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
Ich denke, die erste Warnung bezüglich der Abwertung ist klar, aber die zweite Warnung The called method `multiply' is defined hereist für mich verwirrend.
Was bedeutet die zweite Warnung? Bezieht es sich auf die erste Warnung?
Beide Warnungen verschwinden beim Hinzufügen **zum Aufruf ( multiply(**args)).