Ruby/Opérateurs
Opérations arithmétiques
modifierIl y a 6 opérations arithmétiques, chacune utilisant un opérateur
- l'addition :
a + b
- la soustraction :
a - b
- la multiplication :
a * b
- la division :
a / b
- le modulo :
a % b
est le reste de la division euclidienne de a par b, c'est-à-dire qu'a, b etr = a % b
sont des entiers - la mise en exposant :
a ** 3 = a * a * a
Ces opérations vous permettent de manipuler deux sortes de nombres : les entiers et les décimaux (ou flottants). L'utilisation de parenthèses permet de modifier l’ordre de priorité entre ces opérations. En effet :
puts 2 * 3 + 5 ** 2 # => 31
puts (2 * (3 + 5)) ** 2 # => 256
La notation scientifique est aussi tolérée : 1,8.10^4
s'écrit 1.8e4
(à ne pas confondre avec la notation exponentielle, mais c’est une autre histoire).
Simplifications
modifierIl peut nous arriver d'écrire une expression comme :
i = i + 1
Ceci nous amène à citer deux fois la même variable dans la même expression. Ruby nous permet de remplacer ceci par :
i += 1 # on ajoute 1 à la valeur de i
Le fait d'ajouter une valeur constante (ici, 1) à une variable s’appelle l'incrémentation. Si on retranche une valeur constante, on parle de décrémentation.
Dans certains langages, on peut simplifier l’expression i += 1
pour obtenir i++
ou ++i
, de même avec l’expression i -= 1
pour obtenir i--
ou --i
. Ceci n’est pas possible en Ruby !
De cette manière, nous pouvons simplifier toutes les opérations arithmétiques de base vues jusque-là :
i += 8 # équivaut à i = i + 8
n -= 3 # équivaut à n = n - 3
z *= 9 # équivaut à z = z * 9
f /= 5 # équivaut à f = f / 5
k %= 7 # équivaut à k = k % 7
v **=6 # équivaut à v = v ** 6
Opérations sur les chaînes de caractères
modifierLes opérateurs d'addition et de multiplication permettent également de manipuler des chaînes de caractères.
puts "hello" + " world !" # => hello world !
Les deux chaînes de caractères ont été mises bout à bout (concaténées). On peut également mettre le résultat de la concaténation dans une variable :
text = "hello" + " world !"
puts text
Nous pouvons aussi utiliser l'opérateur * sur les chaînes de caractères :
puts "zog ! " * 4 # Ce code renverra : zog ! zog ! zog ! zog !
Simplifications
modifierCes simplifications se basent sur le même modèle que pour les opérations arithmétiques.
text = "ruby" * 3
# peut s'écrire
text = "ruby"
text *= 3
phrase = "wiki"
phrase = phrase + "pedia"
# peut s'écrire
phrase = "wiki"
phrase += "pedia"
# ou encore (plus rapide en exécution)
phrase = "wiki"
phrase << "pedia"