Orb Programming Language

Operators - unary

Used to perform calculations and/or modify an operand.

+ oper<numeric>

Returns a value equal to the value of oper.

    std.println (+ x);

- oper<integer or float>

Returns the negated value of oper.

    std.println (- x);

~ oper<integer>

Returns the value of oper with all its bits complemented.

oper must of an integer type.

    std.println (~ x);

! oper<bool>

Returns the negated value of oper.

    exit (! cond);

* oper

Returns the value to which oper points. This is known as dereferencing a pointer.

oper must be of a pointer type, excluding array pointers and ptr.

The pointed-to type must not be an undefined type.

If oper is an evaluated value, it must not be null. If oper is a compiled value equal to null, the compiled program will have undefined behaviour.

The result is a ref value.

    = (* p) -1;

& oper

Returns a pointer to oper.

oper must be a ref value.

    sym (p (& x));

>> oper

Resets oper to its zero state and returns its previous value as a non-ref value. This is known as moving a value.

oper must be a typed value. It must not be marked as noDrop. It must not be, nor be fetched from, an invocation argument.

If oper is a non-ref value, it is simply returned.

If oper is a ref value, it must not be of a constant type.

::noZero on >> will cause oper to not be reset to its zero state. It may be of a constant type.