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
对我来说却很困惑。第二个警告是什么意思?与第一次警告有关吗?
将
**
添加到 call (multiply(**args)
)时,这两个警告均消失。 最佳答案
有一个警告,文本分为两行。它的字面意思是:args
应该转换为**args
,这是产生此警告的调用,这是为了方便您的定义。
关于ruby - 此处定义了调用的方法 `…',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59490108/