В Ruby аргументы передаются по значению.Таким образом, следующий метод никогда не будет иметь никакого эффекта:
def doesnt_swap(a, b)
c = a
a = b
b = c
end
С другой стороны, объекты mosts являются ссылками, например для строк, так что вы можете написать
def swap_strings(a, b)
c = a.dup
a.replace(b)
b.replace(c)
end
Это поменяет местамистроковые значения двух аргументов.
Целые числа являются непосредственными, поэтому нет эквивалента replace
;Вы не можете написать swap_integers
.
В любом случае, в Ruby вы меняете местами: a, b = b, a