Contactez-nous

Erreur commune : oublier de passer le bon nombre d'arguments

Evitez l'erreur `ArgumentError` en Ruby en comprenant pourquoi il est crucial de fournir le bon nombre d'arguments à une méthode. Ce guide explique l'origine de l'erreur, comment la lire et comment la corriger, un pas essentiel pour écrire du code fiable.

Qu'est-ce qu'un 'contrat' de méthode et pourquoi est-il strict ?

Lorsque vous définissez une méthode, vous établissez une sorte de contrat. Si vous écrivez def calculate_price(item_price, tax_rate), le contrat stipule : "Pour que je puisse fonctionner, tu dois me fournir exactement deux informations : un prix d'article et un taux de taxe".

Ruby est très strict sur le respect de ce contrat. Si vous appelez la méthode en lui donnant une seule information, ou trois, Ruby ne saura pas quoi faire. Il ne peut pas deviner l'information manquante ni ignorer celle en trop. Par conséquent, au lieu de produire un résultat incorrect, il préfère arrêter immédiatement le programme et vous signaler l'erreur. C'est un comportement sécuritaire qui vous aide à détecter rapidement les bugs.

L'erreur `ArgumentError` : le message à reconnaître

Ce message est une mine d'or d'informations. Il vous dit :

  • Où : Dans la méthode `display_full_name`.
  • Quoi : wrong number of arguments (mauvais nombre d'arguments).
  • Le détail : given 1, expected 2 (vous en avez donné 1, j'en attendais 2).

Avec cette information, corriger le bug devient trivial : il suffit de fournir le deuxième argument manquant.

Les deux facettes de l'erreur : trop peu ou trop d'arguments

Cas 2 : Argument en trop

Conseil d'expert : comment rendre les arguments plus flexibles ?

C'est une technique avancée que vous utiliserez constamment dans des applications réelles. Pour l'instant, retenez que par défaut, une méthode est stricte sur son contrat, et c'est ce comportement qui vous protège contre de nombreuses erreurs.