重複の可能性:
Ruby は参照渡しですか、それとも値渡しですか?
Ruby でオブジェクトをメソッドに渡すとき、このオブジェクトのメモリはどのように処理されますか?
C のバックグラウンドから来て、起こっている可能性のあるいくつかのことを考えることができます。
該当するオブジェクトに関連付けられたメモリのコピーであり、呼び出されるメソッドで使用できるようになります。その場合、オブジェクトの変更は、呼び出し元のメソッドではなく、呼び出されるメソッドのコンテキストにのみ反映されます。
オブジェクトのメモリへの参照は、呼び出されるメソッド (基本的にはポインター) に渡されます。したがって、呼び出されるメソッドまたは呼び出し元のメソッドによってオブジェクトによって行われた変更は、両方のコンテキストに反映されます。同様に、このプログラムがマルチスレッド化されている場合、何らかのメカニズム (mutex、セマフォなど) を使用して、書き込み操作を実行するメモリへの相互排他的アクセスを保証する必要があります。
私が考えることができない他の何か...おそらくGoのそれに似たメモリモデル...パイプ...メッセージパッシング...?
実際に何が起こっているのですか?