En Ruby, les variables ne contiennent pas d’objet mais font référence à des objets. Mmmh. Un exemple :
var_01 = "Enveloppe" var_02 = var_01 var_02.chop! # Ca supprime le dernier caractère puts var_02 → Envelopp puts var_01 → Envelopp
Tiens. Ma var_01 a été tronquée aussi alors qu’on a effectué l’opération sur var_02. C’est parce qu’en réalité, var_01 et var_02 font référence à un objet extérieur (en l’occurence “Enveloppe”) et ce dernier ayant été modifié par var_02, et bien lorsque var_01 y fait référence, on obtient la nouvelle valeur “Envelopp”.
Donc lorsque j’ai fait var_02 = var_01, je n’ai pas attribué de valeur à var_02 mais je lui ai dit de pointer au même endroit que var_01. Je ne sais pas si c’est courant dans d’autres langages de programmation (je n’ai pas l’impression).
Si vous voulez créer une copie, il suffit d’appeler la méthode .clone ou .dup.
A la suite
On peut référencer à la chaîne :
hauteur = largeur = 20 a = b = c = d = e = 4
A chaque fois, la valeur de droite est envoyé à son voisin de gauche.
En parallèle
Au lieu d’écrire plusieurs lignes pour assigner plusieurs valeurs à plusieurs variables, on peut écrire :
hip,hop = 3,4 hip → 3 hop → 4
Avec un Array
On peut assigner un tableau à une liste de variables.
mon_tableau = [23 , 45 , 64] a,b,c = mon_tableau a → 23 b → 45 c → 64
Plutôt pratique je trouve. Et si il n’y pas de valeur correspondante “en face”, la valeur “nil” est attribuée (c’est à dire “vide”).
mon_autre_tableau = [95 , 76] a,b,c, = mon_autre_tableau c → nil
Et si vous voulez éviter qu’une valeur soit modifiée par inadvertance, on peut appeler la méthode .freeze, même si c’est peu recommandé.
Il commence à y avoir un pas mal de code. Il va falloir bien organiser tout ça! On verra comment demain…
Flux RSS