引数は参照渡し(代入で困った人はこちら)
例えば、こういうこと。
a = [1,2,3] b = a b[1] = 10 println(b) # => [10,2,3] println(a) # => [10,2,3]
aをbに代入してから、bの要素を書き変えると、aまで変更されちゃうということ。
参照渡しというやつ。(詳しいことはpythonで参照渡しの説明をしている記事を読んでください。)
ちなみに引数でいじらなければ、大丈夫。
a = [1,2,3] b = a b = [10,2,3] println(b) # => [10,2,3] println(a) # => [1,2,3]
最初の例も、b = a[:]としておけば、
a = [1,2,3] b = a[:] b[1] = 10 println(b) # => [10,2,3] println(a) # => [1,2,3]