[Ruby] Глюк или фича?
Yuri Leikind
y.leikind at sam-solutions.net
Mon Sep 15 20:02:13 MSD 2003
On Mon, 15 Sep 2003 19:37:35 +0400
SoNaR <sonar at scli.ru> wrote:
> Hello Yuri,
>
> Monday, September 15, 2003, 7:29:12 PM, you wrote:
>
> YL> On Mon, 15 Sep 2003 18:50:49 +0400
> YL> SoNaR <sonar at scli.ru> wrote:
>
> >> Hello Ruby,
> >>
> >> @ar = [[1,2,3],[4,5,6],[7,8,9]]
> >> def test( ar = @ar )
> >> i, j = 2, 1
> >> ar[ i ][ j ], ar[ i ][ j+1 ] = ar[ i ][ j+1 ], ar[ i ][ j ]
> >> return ar
> >> end
> >> p test
> >> p @ar
> >>
> >> Почему поменялось значение массива и как этого избежать?
> YL> А почему оно не должно меняться, я не понимаю?
> Ну так по логике вещей я передаю массив в метод и он должен
> поменять значения в копии и вернуть модифицированную копию. Или я
> что-то не понимаю?
Не понимаешь.
Есть только один объект, и присваивание не генерирует новую копию
объекта, лишь новая ссылка создается на этот объект.
Обычное поведение для ОО языков.
--
Best regards,
Yuri Leikind
More information about the Ruby
mailing list