Parallele Zuweisungen in Ruby

Nachdem ich mich jetzt schon länger damit beschäftigt habe, kann ich nur eins sagen: Ruby rockt - ob mit oder ohne Schienen, das ist einfach eine koole Programmiersprache. Ein Feature was das Coderherz heute höher schlagen ließ: Parallelzuweisungen.

Nehmen wir an, wir wollen die Werte zweier Variablen gegeneinander vertauschen - dafür braucht man herkömmlicherweise eine dritte Temporärvariable:

a = 1
b = 2
temp = a
a = b
b = temp

In Ruby lässt sich das aber mit einem schicken Einzeiler lösen:

`a, b = b, a`

Die Rechtswerte werden vor ihrer Zuweisung von links nach rechts ausgewertet und anschließend auch in dieser Reihenfolge an die Variablen auf der linken Seite zugewiesen.

a = 3
b, c = (a += 1), (a += 2)
-> a = 6, b = 4, c = 6

Gibt es mehr Links- als Rechtswerte, werden die verbleibenden Linkswerte gleich nil gesetzt. Gibt es mehr Rechts- als Linkswerte, werden die überbleibenden Rechtswerte ignoriert. Wenn es nur einen Linkswert, jedoch mehrere Rechtswerte gibt, so werden sie dem Linkswert als Array zugewiesen.

So nice… :)

iOS app for GitHub

iOctocat

ist GitHub für die Hosentasche - deine Projekte und das was dort passiert immer dabei mit deinem iPhone und iPod Touch.
Die App ist