Ruby / tömb szétválogatás

Ha több paramétert adunk vissza egy tömbben, akkor az alábbi módon is szétválogathatjuk:

res = [1,2]

Így is lehet:

a, b = res

Nem kell ez:

a = res[0]
b = res[1]

Hozzászólások

Legtöbb modern programnyelv tudja ezt, meg is lepődtem volna, ha pont a ruby ne tudná. :)

A teljesség igénye nélkül: Scala, JavaScript, PowerShell (sajnos jobb linkeket nem találtam)

az OK, hogy a maradékot jelenti, de a Pythonra visszatérve a kozep mért pont lista lesz?
Miért nem tuple, vagy más? És ez mindig így van, függetlenül attól, hogy a többszörös értékadás jobb oldalán milyen típusú objektum áll? Például ilyenkor is...

>>> elso,*kozep,utolso = "vakablak"
>>> elso
'v'
>>> kozep
['a', 'k', 'a', 'b', 'l', 'a']
>>> utolso
'k'
>>>

Ez így nem gondolnám, hogy korrekt lenne.

Ha valami enumerable, akkor azon gond nélkül megvalósítható az FP-ben használt head(), tail(), last() meg a maradék egy függvény, aminek a neve nem jut eszembe ;-). Ezekkel meg megvalósíthatóak lennének ezek a szintaktikai szépségek típustartással (vagy mivel.).

Vagy legalábbis én így csinálnám.