Ruby 初心者スレッド Part 40
■ このスレッドは過去ログ倉庫に格納されています
0768デフォルトの名無しさん
2011/02/02(水) 16:39:25>>764さんのおっしゃる通りです。
そのサイトではメモリ図を用いて説明されていて、仮引数に渡すときFixnumだとC言語のように
そのコピーが作られて(新たなオブジェクトを作るということでしょうか?)、Arrayだと
参照の値渡しだと言ってます。
しかも、Fixnumはイミュータブルなのに値を変化させたと書いてあります。
私の認識では、a = a + 1というのは、a + 1という新たなFixnumオブジェクトを作って、その
オブジェクトをaが指し示すというもので、値を変化させるというものではないと思ってました。
Rubyは数値も含めて全てがオブジェクトとうたわれているので、ArrayだろうとFixnum
だろうと同じような扱いをするのだと思っていたから違和感を感じました。
すなわち、ArrayやFixnumを含む全てが参照の値渡しだと思っていたということです。
実は、Fixnumのような数値はいわゆる値型のように実装(ふるまうと)されているということでしょうか?
それとも私の認識(もしくはこのサイトに対しての私の読解)にどこか間違いがあるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています