![](/img/trans.png)
[英]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.