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

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

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

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

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

Посты по теме:

Рекламный блок
Новый подход к решению психологических проблем - Телесно-ориентированная психотерапия и танатотерапия. Уникальность метода состоит в том, что вся работа происходит через воздействие на тело человека - специалисту даже не обязательно рассказывать о своих проблемах.

3 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;

Leave a Reply