En Ruby, toute déclaration renvoie une valeur

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

,

  1. Poster un commentaire

Laisser un commentaire