
[英]Ruby: What is this error referring to? wrong number of arguments (3 for 1)
[英]What does “wrong number of arguments (1 for 0)” mean in Ruby?
“参数错误:参数数量错误(1 代表 0)”是什么意思?
当您定义一个函数时,您还定义了该函数需要工作的信息(参数)。 如果它的设计目的是在没有任何附加信息的情况下工作,并且您传递了一些信息,那么您将收到该错误。
示例: 不带参数:
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以了解所有这些。
你将一个参数传递给一个没有接受任何参数的函数。 例如:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.