在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)