Ruby 什么是;参数数目错误(1代表0)";用红宝石是什么意思?
“参数错误:参数数目错误(1代表0)”是什么意思?您将参数传递给了一个不接受任何参数的函数。例如:Ruby 什么是;参数数目错误(1代表0)";用红宝石是什么意思?,ruby,Ruby,“参数错误:参数数目错误(1代表0)”是什么意思?您将参数传递给了一个不接受任何参数的函数。例如: 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
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)
def()
把“你好,世界”
结束
f(1)#定义函数时,还可以定义该函数需要使用的信息(参数)。如果它被设计为在没有任何附加信息的情况下工作,并且您传递了一些信息,那么您将得到该错误
例如:
不接受任何参数:
def dog
end
def cat(name)
end
接受参数:
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)
查看以了解所有这些信息。如果从使用带一个参数的lambda改为使用带一个参数的函数,则会出现此错误
例如:
def takes_no_arguments
end
takes_no_arguments 1
# ArgumentError: wrong number of arguments (1 for 0)
你有:
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)
-1Cat.new(“Fluffy”)
不能正常工作。它给出了“未初始化常量Cat”和Cat()。new(“Fluffy”)
给出了“ArgumentError:错误的参数数(0代表1)”。更像是解释参数错误的简单直观表示。但是如果你担心的话,请解决它
其他答案可能在技术上更为有效,但对于像“什么是ArgumentError”这样的基本问题,可能没有帮助。bennett_an感谢您提供Ruby Koans的链接,看起来很有趣。