Zuweisungen sind in Ruby sehr flexibel, da sie mit mehreren Werten umgehen können:
a = 0 #-> 0 b, c, d = (a += 1), (a += 2), (a += 3) #-> [1, 3, 6] e = [b, c, d] #-> [1, 3, 6] # mehr Elemente als Variablen f, g = e #-> [1, 3, 6] [f, g] #-> [1, 3] # mehr Variablen als Elemente f, g, h, i = e #-> [1, 3, 6] [f, g, h, i] #-> [1, 3, 6, nil] # restliche Werte mit * in Array sammeln f, *g = e #-> [1, 3, 6] f #-> 1 g #-> [3, 6] # Array mit * in Einzelwerte aufspalten f, g, h = 0, *e #-> [0, 1, 3, 6] [f, g, h] #-> [0, 1, 3]Auch bei tiefer verschachtelten Arrays kann man noch auf die einzelnen Objekte zugreifen. Allerdings sollte man seinen Programmierstil überprüfen, wenn man solche Sachen braucht ...
a, (b, c), d = [1, [2, 3], 4] [a, b, c, d] #-> [1, 2, 3, 4]