Admettons que vous écriviez un jeu. Vous voulez afficher un message, suivant que le joueur ai gagné ou perdu. Voici un script qui fait ça :
win = true
if win
message = "Félicitation, vous avez gagné !"
else
message = "Vous avez perdu..."
end
puts message
Ce genre de code est très courant. Il n’émouvra pas ceux qui ont l’habitude des langages dynamiques. Par contre, il fera peut-être tiquer les développeurs qui viennent d’un langage typé statiquement, comme Java, du fait que message
n’est pas initialisé à une valeur connue avant le passage dans le if/else
.
Quand on dit qu’en Ruby, toute déclaration renvoie une valeur, il faut lire : En Ruby, toute déclaration renvoie une valeur. Comme if
est une déclaration, il y a de quoi contenter tout le monde:
win = true
message = if win
"Félicitation, vous avez gagné !"
else
"Vous avez perdu..."
end
puts message