EnglishРусский

Basic language elements

Expressions and operators

Appendix

The project is closed! You can look at a new scripting language. It is available on GitHub.
Also, try our open source cross-platform automation software.

Installer and installation software
Commercial and Freeware installers.

# Assignment operators

The assignment operators are considered to be the binary operators. The left-hand operand of an assignment operation must be a variable, item of array, field of structure etc. These operators have right-to-left associativity.

 = Simple assignment. += Addition assignment. a += b => a = a + b -= Subtraction assignment. a -= b => a = a - b *= Multiplication assignment. a *= b => a = a * b /= Division assignment. a /= b => a = a / b %= Remainder assignment. a %= b => a = a % b &= Bitwise-AND assignment. a &= b => a = a & b =) ^= Bitwise-exclusive-OR assignment. a ^=b => a = a ^ b >>= Right-shift assignment. a >>= b => a = a >> b <<= Left-shift assignment. a <<= b => a = a << b

As you have already noticed, except "simple assignment" you can perform the assignment with an operation, that is after a binary operation of the right-hand operand and the left-hand operand is performed, the result is assigned into the left operand.

``````a = 10
a += 10 + 23 // a = 43
a *= 2  // a = 86

if a = 2 // TRUE !!!
{...}
if a == 2 // TRUE if a equals 2
{...}``````

One and the same expression can contain several assignment operations, each of which returns the assigned value. In this case, the assignment operation is performed from right to left.

``````a = 10 + b = 20 + c = 3
// result: с=3, b=23, a=33
a = ( b += 10 )``````

You can define these operators for any types. See more details on the Redefining operator operations page.