Comprendre les erreurs.
On retrouve souvent des erreurs dans le Ruby mais on ne comprends pas trop sa signification. Hé bien, ce chapitre est là pour cela.
Voici un simple code en Ruby :
Et voici le message d'erreur :
#<TypeError: cannot convert Fixnum into String>
Fixnum est un entier et String une chaîne de caractère. Le problème est que vous ne pouvez pas additionner une chaîne de caractère et un nombre.
Si vous voulez afficher "55", il faudra additionner deux chaînes de caractères :
Sur cette exemple, ça a l'air stupide mais voici un autre exemple :
Et oui ... si l'utilisateur met un nombre, on aura le fameux problème ... et si vous mettez des parenthèses autour de "nombre" comme pour le chiffre 5 dans l'exemple ci-dessus, Ruby va interpréter "nombre" comme une chaîne de caractère et non comme une variable.
La solution est tout simplement de convertir la variable "nombre" en chaîne de caractère avec ".to_s"
Voici la source d'une autre erreur :
Message d'erreur :
#<ArgumentError: wrong number of arguments (0 for 1)>
Quel est le problème ? Normalement ça devrait vous sauter aux yeux ...
Tout d'abord, il y a une méthode "heros" avec un paramètre "nom". Dedans, on a une instruction ... ensuite, en dehors de la méthode, on appelle la méthode "heros" mais ... sans le paramètre ! Ruby ne va rien comprendre et vous met un petit message :)
Voici la correction du code :
Voici un autre type d'erreur :
L'erreur :
#<NameError : undefined local variable 'nom'>
Si vous comprenez un peu l'anglais, vous aurez compris donc que le message d'erreur nous dit qu'on a pas défini la variable locale "nom". Ah bon ? et pourtant à la deuxième ligne : " nom = 'Link' ", on a bien défini la variable ???
Oui mais il y a une particularité ... si on défini une variable dans une méthode, elle pourra s'appliquer que dans cette méthode et pas à l'extérieur. Voilà pourquoi on dit que c'est une variable "locale".
La solution :
Page vue 3451 fois | Auteur : Samarium

