Affectations multiples

Vous pouvz déclarer/affecter plusieurs variables en même temps en séparant les expressions avec une virgule (,):

name, age = "Crystal", 1

# L'exemple précédent est équivalent à:
temp1 = "Crystal"
temp2 = 1
name  = temp1
age   = temp2

Remarquez qu'étant donné que les expressions sont affectées dans des variables temporaires il est possible d'échanger le contenu des variables en une seule ligne:

a = 1
b = 2
a, b = b, a
a #=> 2
b #=> 1

Si la partie droite contient seulement une expression, elle est considérée comme un type indexé et le sucre syntaxique suivant s'applique:

name, age, source = "Crystal,1,github".split(",")

# L'exemple précédent est équivalent à:
temp = "Crystal,1,github".split(",")
name   = temp[0]
age    = temp[1]
source = temp[2]

Si la partie gauche contient juste une variable, la partie droite est considérée comme un tableau:

names = "John", "Peter", "Jack"

# L'exemple précédent est équivalent à:
names = ["John", "Peter", "Jack"]

Les affectations multiples sont également disponibles pour les méthodes qui finissent avec =:

person.name, person.age = "John", 32

# Equivalent à:
temp1 = "John"
temp2 = 32
person.name = temp1
person.age = temp2

Et c'est aussi disponible depuis les indexeurs ([]=):

objects[1], objects[2] = 3, 4

# Equivalent à:
temp1 = 3
temp2 = 4
objects[1] = temp1
objects[2] = temp2

results matching ""

    No results matching ""