Revision 17454 adds experimental support for X++, X--, ++X, and ==X.
X can be a variable reference or an aggregate reference - a map entry or a record field.
They have the expected meaning:
X++ - increment X and return the old value
++X - increment X and return the new value
X-- - decrement X and return the old value
--X - decrement X and return the new value
Simple test program:
results in:
Tell me if there are any surprises.
X can be a variable reference or an aggregate reference - a map entry or a record field.
They have the expected meaning:
X++ - increment X and return the old value
++X - increment X and return the new value
X-- - decrement X and return the old value
--X - decrement X and return the new value
Simple test program:
Code:
int a = 1;
int b = a++;
print( "a = " + a );
print( "b = " + b );
print( "a = " + a + " a++ = " + a++ + " a = " + a );
print( "a = " + a + " a-- = " + a-- + " a = " + a );
print( "a = " + a + " ++a = " + ++a + " a = " + a );
print( "a = " + a + " --a = " + --a + " a = " + a );
int [string] map;
map["a"] = 1;
map["b"] = 10;
map["c"] = 100;
map["d"] = 1000;
foreach key, val in map {
print( "++map[" + key + "] = " + ++map[key] );
}
record {
int a;
int b;
int c;
} rec;
rec.a = 1;
rec.b = rec.a++;
rec.c = ++rec.a;
print( "rec.a = " + rec.a );
print( "rec.b = " + rec.b );
print( "rec.c = " + rec.c );
Code:
[color=green]> test-incdec[/color]
a = 2
b = 1
a = 2 a++ = 2 a = 3
a = 3 a-- = 3 a = 2
a = 2 ++a = 3 a = 3
a = 3 --a = 2 a = 2
++map[a] = 2
++map[b] = 11
++map[c] = 101
++map[d] = 1001
rec.a = 3
rec.b = 1
rec.c = 3
Last edited: