Ruby 2.7刚刚发布,并附带了有关“位置和关键字参数分离”的这些新警告(请参见其Release Post)。我在玩它,发现还有另外一个警告,我听不懂。
例:
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
我认为关于弃用的第一个警告很明确,但是第二个警告The called method `multiply' is defined here
让我感到困惑。
第二个警告是什么意思?它与第一个警告有关吗?
添加**
到通话(multiply(**args)
)时,这两个警告均消失。
1
有人知道如何禁止这些警告吗?我有弃用警告写到日志文件,但它不会影响这些警告。运行规范是红宝石2.7.0的噩梦
—
卡尔