Как поменять значения двух переменных ?

Задача эта элементарна, и я бы даже не стал писать такую заметку, если бы не столкнулся с языком программирования Ruby, в котором она решается очень кратко и красиво благодаря механизму параллельного присваивания:
a,b = b,a

В этом языке реализовано достаточное количество изящных решений, с которыми я столкнулся впервые, например подмешивание модулей к классам. Учебник по Руби можно почитать вот тут.

А в традиционном php задачу тоже можно решить в одну строчку, правда не так изящно и красиво, но все же этот метод вполне рабочий:

list($a,$b) = array($b,$a)



Digital Ocean
Провайдер облачного хостинга - заведи свой виртуальный сервер всего за $5 в месяц !

4 Comments

  1. Алексей Качаев

    Спорная красивость в выражении a,b = b,a… В чем же красивость, в том, что строка на 9 букв ниже? Зато php шный вариант читабельнее. Хотя, наверное, дело привычки… 🙂

  2. userfoenix

    по мне, то рубишный код намного гибче за пхпшный…Именно потому Ruby on Rails всегда будет а 10*х раз круче за CodeIgniter (особенно в Rails 3), хотя мне очень нравится последний и я использую его для фриланса 🙂

    Не в обиду автору комента… таки да, дело вкуса и привычки

  3. Alexei

    $a ^= $b;
    $b ^= $a;
    $a ^= $b;

  4. sildenafil

Leave a Reply