++ (increment) operator

The left-associative, unary ++ operators increment their operand; they differ in whether the result is assigned before or after the increment.

Usage

Postfix ++ has the operator after the operand:

variable Integer num = 1;
num++;

Prefix ++ puts the operator before the operand:

variable Integer num = 1;
++num;

Description

Both operators increment their operand by one. The difference is that the prefix operator updates its operand and evaluates to the updated value. The postfix operator, in contrast, increments its operand but evaluates to the value of the operand before the increment.

Definition

The prefix ++ is defined as:

rhs = rhs.successor

The postfix ++ is defined as:

let (x = lhs, _ = lhs = lhs.successor) x

See the language specification for more details.

Polymorphism

The ++ operator is polymorphic. The meaning of ++ depends on the Ordinal interface.

Type

The result type of the ++ operator is the same as the Ordinal type of its operand.

See also