Objectifs
- Manipuler les nombres (entiers et flottants).
- Créer et interpoler des chaînes de caractères (Strings).
- Comprendre la signification de
nilet des booléenstrueetfalse. - Vérifier le type d’un objet avec la méthode
.class. - Saisir le concept de “truthiness” en Ruby.
En Ruby, tout est un objet. Cela signifie que chaque valeur que vous manipulez, même un simple nombre, est une instance d’une classe et dispose de ses propres méthodes.
Les Nombres
Ruby distingue principalement deux types de nombres :
-
Integer: Les nombres entiers, positifs ou négatifs.age = 30 temperature = -5 -
Float: Les nombres à virgule flottante.pi = 3.14 prix = 99.99Si une opération arithmétique implique un
Float, le résultat sera unFloat.
Les Chaînes de Caractères (String)
Les String représentent du texte. Il y a deux manières principales de les créer.
- Guillemets doubles
": C’est la méthode la plus courante et la plus puissante. Elle permet l’interpolation, c’est-à-dire l’évaluation de code Ruby à l’intérieur de la chaîne avec la syntaxe#{...}.nom = "Alice" message = "Bonjour, #{nom} ! Votre solde est de #{50 * 2} euros." # => "Bonjour, Alice ! Votre solde est de 100 euros." - Guillemets simples
': Le contenu est traité littéralement. Aucune interpolation n’est effectuée.message_literal = 'Bonjour, #{nom} !' # => "Bonjour, #{nom} !"
Les Booléens : true et false
Les booléens représentent les valeurs de vérité.
trueest l’objet qui représente le vrai.falseest l’objet qui représente le faux.
est_connecte = true
a_des_erreurs = false
Le concept de “Truthy” et “Falsy”
C’est un point très important et une différence avec de nombreux autres langages. Dans une condition (if, while…), Ruby considère comme “fausses” (falsy) seulement deux valeurs :
falsenil
Tout le reste est considéré comme “vrai” (truthy), y compris :
- Le nombre
0. - Une chaîne de caractères vide
"". - Un tableau vide
[].
nil : La représentation du “rien”
nil est un objet spécial qui représente l’absence de valeur. C’est l’équivalent de null ou None dans d’autres langages.
# Si une variable n'a pas encore de valeur, elle vaut nil
voiture = nil
Vérifier le type d’un objet avec .class
Puisque tout est un objet, vous pouvez demander à n’importe quelle valeur de quelle “classe” (type) elle est.
10.class # => Integer
3.14.class # => Float
"Bonjour".class # => String
true.class # => TrueClass
false.class # => FalseClass
nil.class # => NilClass
Bonnes pratiques
- Utilisez les guillemets doubles
"pour vos chaînes de caractères par défaut. N’utilisez les guillemets simples''que lorsque vous avez spécifiquement besoin d’un comportement littéral. - Gardez à l’esprit la règle du “truthy/falsy”. Une vérification
if ma_chainesera toujours vraie, même si la chaîne est vide. Pour tester si une chaîne est vide, utilisezif ma_chaine.empty?.
Exercices
-
Exploration des types dans
irb:- Lancez
irb. - Créez une variable pour chaque type de données que nous avons vu.
- Utilisez la méthode
.classsur chaque variable pour confirmer son type.
- Lancez
-
Jeu d’interpolation :
- Créez une variable
fruit = "pomme". - Créez une variable
quantite = 5. - En utilisant l’interpolation, créez une chaîne de caractères qui affiche : “J’ai 5 pommes.”.
- Créez une variable
-
Test de “truthiness” :
- Dans
irb, testez les conditions suivantes et observez le résultat :if 0 puts "0 est 'truthy'" end if "" puts "Une chaîne vide est 'truthy'" end if nil puts "Ce message ne s'affichera pas" else puts "nil est 'falsy'" end
- Dans