引数は参照渡し(代入で困った人はこちら)
例えば、こういうこと。
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]