On Sep 28, 4:34 pm, Phlip <phlip2... / gmail.com> wrote: > In Ruby, types that can (generally) fit into 32 bits are "immediate > types". These Fixnums and Floats are pass-by-value. All other types - > from String up - are pass by reference: But I don't think this should make any bit of difference to anyone. Pass-by-value of an 'immediate' object is (nearly) indistinguishable for pass-by-reference of an immutable object. The only consistent difference that I can think of is that two literals of the same value happen to have the same object_id. (And as has been pointed out recently, there are very few good reasons why you should care about object_id other than possibly debugging.)