On Thu, Aug 13, 2009 at 11:31 AM, Robert
Klemme[email protected] wrote:
incremented.
Makes sense, though strictly speaking x++ could be syntactic sugar for
x+=1 or x =x +1
but this would probably be very confusing for many folks for the very
reason you gave.
Cheers
Robert
although there is not the orthogonal x.prev, which seems like the
Principle of Most Surprise in effect :-). One way to rectify that is
to open up Integer yourself:
Basically it is a consequence of the decision to make integers
immutable which makes assignment necessary for a variable which is
incremented. I guess Matz wanted to make this explicit, hence “+=”
Co.
Otherwise you need a counter class, e.g.
Counter = Struct.new :value do
def initialize(x = 0)
self.value = x
end
There is also #succ and #pred. But this is not the point: all of them
work by returning a different object. You can easily verify by
looking at the result’s #object_id. Operators ++ and – in C++ on the
other hand change the object (int, long etc.) itself. The difference
is whether you will have aliasing or not.
Kind regards
robert
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.