在Ruby中,“错误的参数数量(1代表0)”是什么意思?

什么“参数错误:参数的错误数量(1为0)”是什么意思?

当你定义一个函数时,你还要定义函数需要的信息(参数)。 如果它的devise工作没有任何额外的信息,并通过它,你会得到这个错误。

例子:没有参数:

def dog end 

参数:

 def cat(name) end 

当你调用这些,你需要用你定义的参数来调用它们。

 dog #works fine cat("Fluffy") #works fine dog("Fido") #Returns ArgumentError (1 for 0) cat #Returns ArgumentError (0 for 1) 

检查Ruby Koans学习所有这一切。

你把一个参数传给了一个没有采取的function。 例如:

 def takes_no_arguments end takes_no_arguments 1 # ArgumentError: wrong number of arguments (1 for 0) 

我假设你调用了一个没有任何定义的参数。

 def f() puts "hello world" end f(1) # <= wrong number of arguments (1 for 0) 

如果您将具有一个参数的lambda更改为具有一个参数的函数,则会出现此错误。

例如:

你有过:

 foobar = lambda do |baz| puts baz end 

你改变了定义

 def foobar(baz) puts baz end 

你留下你的调用:

 foobar.call(baz) 

然后你得到了消息

 ArgumentError: wrong number of arguments (0 for 1) 

当你的意思是:

 foobar(baz)