X# uses the following binary operators:
Operator |
Example |
Meaning |
+ |
x + y |
addition |
- |
x - y |
subtraction |
* |
x * y |
multiplication |
/ |
x / y |
division. If the operands are integers, the result is an integer truncated toward zero (for example, -7 / 2 is -3). |
% |
x % y |
modulus. If the operands are integers, this returns the remainder of dividing x by y. If q = x / y and r = x % y, then x = q * y + r. |
^ or ** |
x ^ y or x ** y |
power of. x ^ y returns x to the power of y |
default or ?? |
x DEFAULT y |
When x is not null then x, otherwise y. Can be chained: x DEFAULT y DEFAULT z or x ?? y ?? z |
|
The following XBase types support binary operators.
Type |
Operator |
Description |
ARRAY |
none |
binary operators are not supported for arrays |
DATE |
+ and - |
You can add and subtract a numeric to a date, which is the equivalent of adding days. |
FLOAT |
all |
You can perform all binary operations on FLOATs when both operands are numeric. The compiler will automatically insert a conversion from <any numeric type> to FLOAT when the right hand side of the binary operator is not a float |
SYMBOL |
none |
binary operators are not supported for arrays |
STRING |
+ and - |
The + operator will add 2 strings. The - operator will add the RHS to the LHS and move all trailing spaces of the LHS to the end of the resulting string. You can also add STRING values and SYMBOL values. The SYMBOLs will automatically be converted to strings |
USUAL |
all |
You can use all binary operators on USUALs. The code in the runtime will check to see if the 2 sides are "compatible" and will produce a runtime error when the operation is not available. |