Que signifie "Argument Error : wrong number of arguments (1 for 0)" ?
-1 Cat.new("Fluffy")
ne fonctionne pas bien. Il donne "uninitialized constant Cat", et Cat().new("Fluffy")
donne "ArgumentError : wrong number of arguments (0 for 1)".
Que signifie "Argument Error : wrong number of arguments (1 for 0)" ?
Lorsque vous définissez une fonction, vous définissez également les informations (arguments) dont cette fonction a besoin pour fonctionner. Si elle est conçue pour fonctionner sans aucune information supplémentaire et que vous lui en passez, vous obtiendrez cette erreur.
Exemple : Ne prend aucun argument :
def dog
end
Accepte les arguments :
def cat(name)
end
Lorsque vous les appelez, vous devez les appeler avec les arguments que vous avez définis.
dog #works fine
cat("Fluffy") #works fine
dog("Fido") #Returns ArgumentError (1 for 0)
cat #Returns ArgumentError (0 for 1)
Consultez le Koans de Rubis pour apprendre tout ça.
-1 Cat.new("Fluffy")
ne fonctionne pas bien. Il donne "uninitialized constant Cat", et Cat().new("Fluffy")
donne "ArgumentError : wrong number of arguments (0 for 1)".
Il s'agit plutôt d'une représentation visuelle simple pour expliquer ce qu'est une erreur d'argument. But if you are that concerned, please fix it. <br>Les autres réponses ont pu être plus valables techniquement, mais probablement pas aussi utiles pour quelqu'un qui demande quelque chose d'aussi élémentaire que "qu'est-ce qu'une ArgumentError ?".
Si vous passez de l'utilisation d'un lambda à un argument à une fonction à un argument, vous obtiendrez cette erreur.
Par exemple :
Tu avais :
foobar = lambda do |baz|
puts baz
end
et vous avez changé la définition en
def foobar(baz)
puts baz
end
Et vous avez laissé votre invocation comme :
foobar.call(baz)
Et puis vous avez reçu le message
ArgumentError: wrong number of arguments (0 for 1)
alors que vous vouliez vraiment :
foobar(baz)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.