On 11/9/06, paul <pjvleeuwen / gmail.com> wrote: > Hi all, > > A little thing that is bugging me is that I don't know how to do a > "count++" (like in Java) in Ruby. I found that Ruby has a method succ / > next, but that still leaves me doing "count = count.succ" A simple > "count.succ!" doesn't seem to exist... > > Now I try to overwrite the class, but I don't know the internal name of > the value stored in the integer class. "self = self + 1" is not valid, > so I tried: > class Integer > def succ! > self.value = succ > end > end > , but value is not a valid name. When browsing the internet I found > some C code (is *all* of Ruby written in C?). In this C code I found > some names like 'int_int_p' and 'VALUE', but those don't seem right > either... > > Anyone?... > > > The short answer is what you are trying is impossible. Ruby variables are just names to actual objects. Methods that modify self, are really modifying the "actual object": a = "pat" => "pat" b = a => "pat" a.object_id => 24077070 b.object_id => 24077070 b.upcase! => "PAT" a => "PAT" a.object_id => 24077070 b.object_id => 24077070 Note that the object_id never changes. Now do this: 1.object_id => 3 a = 1 => 1 a.object_id => 3 If you could write succ! for a Fixnum, 1.succ! would globally change every one in your application to 2 :-) I have been a C/C++ programmer for almost 20 years (wow I am getting old), and when I first used Ruby I missed my ++/--, but I got over it -- just enjoy Ruby for what it is. pth