Я создал метод, который наследуется от класса Array, чтобы поменять местами два массива:своп массивы в Ruby,
class Array
def exchange_with!(other_array)
self,other_array=other_array,self
end
end
Но я получаю ошибку Can't change the value of self (SyntaxError)
. Я также попытался:
class Array
def exchange_with!(other_array)
self.replace(other_array)
other_array.replace(self)
end
end
Но она возвращает значение последнего swaped массива:
a=[1,2,4]
b=[5,6,7]
a.exchange_with!(b)
a #> [5, 6, 7]
b #> [5, 6, 7]
то, что мне нужно, это a #> [5, 6, 7]
и b #>[1, 2, 4]
Не совсем понятно, что вы пытаетесь сделать. Вы хотите поменять местами идентификаторы двух массивов (схожий с [tag: smalltalk] '' стать: ') или содержимым? –
я меняю весь массив, при условии, что их размеры равны .. – owade
Да, но вы хотите поменять содержимое или личность? –