"Austin Ziegler" <halostatue / gmail.com> wrote/schrieb <9e7db9110701271150i30ae8023h27dfcae386a3629e / mail.gmail.com>: > The simplest way to remember this is that variables in Ruby aren't > chunks of memory. Or: they are a chunk of memory, but the only kind of value they can contain is a reference to an object. A variable is not such an object, i.e. there are no references to variables. Ruby ~~~~ Var. obj.-id object +---+ +---+ a --->| | | | | |--->| | b --->| | | | +---+ | | | | | | | | | | +---+ If one passes a value, always an object id will be passed. If one just uses variable ``a'', it will always go through the automatial indirection of the object id. If ``a'' and ``b'' go through the same indirection (using the same object id), then state can be manipulated mutually. C ~ Var. memory +---+ a --->| | | | b --->| | | | | | | | | | | | +---+ If one passes a value, the memory will be copied. Then state can no longer be manipulated. Regards Thomas