Ring/Lessons/Operators
Operators
editIn this chapter we will introduce the operators provided by the Ring programming language.
Arithmetic Operators
editThe next table presents all of the arithmetic operators provided by the Ring language. Assume variable X=50 and variable Y=10 then:
+------------+---------------+----------+---------+
| Operator | Description | Example | Result |
+============+===============+==========+=========+
| + | Add | x+y | 60 |
+------------+---------------+----------+---------+
| - | Subtract | x-y | 40 |
+------------+---------------+----------+---------+
| * | Multiplies | x*y | 500 |
+------------+---------------+----------+---------+
| / | Divide | x/y | 5 |
+------------+---------------+----------+---------+
| % | Modulus | x%y | 0 |
+------------+---------------+----------+---------+
| ++ | Increment | x++ | 51 |
+------------+---------------+----------+---------+
| -- | Decrement | x-- | 49 |
+------------+---------------+----------+---------+
Relational Operators
editThe next table presents all of the relational operators provided by the Ring language. Assume variable X=50 and variable Y=10 then:
+------------+---------------------+-------------+---------+
| Operator | Description | Example | Result |
+============+=====================+=============+=========+
| = | Equal | x = y | False |
+------------+---------------------+-------------+---------+
| != | Not Equal | x != y | True |
+------------+---------------------+-------------+---------+
| > | Greater than | x > y | True |
+------------+---------------------+-------------+---------+
| < | Less than | x < y | False |
+------------+---------------------+-------------+---------+
| >= | Greater or Equal | x >= y | True |
+------------+---------------------+-------------+---------+
| <= | Less than or Equal | x <= y | False |
+------------+---------------------+-------------+---------+
Logical Operators
editThe next table presents all of the logical operators provided by the Ring language. Assume variable X=True and variable Y=False then:
+------------+---------------------+-------------+---------+
| Operator | Description | Example | Result |
+============+=====================+=============+=========+
| and | Logical AND | x and y | False |
+------------+---------------------+-------------+---------+
| or | Logical OR | x or y | True |
+------------+---------------------+-------------+---------+
| not | Logical Not | not x | False |
+------------+---------------------+-------------+---------+
Bitwise Operators
editThe next table presents all of the bitwise operators provided by the Ring language. Assume variable X=8 and variable Y=2 then:
+------------+-----------------------------+-------------+---------+
| Operator | Description | Example | Result |
+============+=============================+=============+=========+
| & | Binary AND | x & y | 0 |
+------------+-----------------------------+-------------+---------+
| | | Binary OR | x | y | 10 |
+------------+-----------------------------+-------------+---------+
| ^ | Binary XOR | x ^ y | 10 |
+------------+-----------------------------+-------------+---------+
| ~ | Binary Ones Complement | ~x | -9 |
+------------+-----------------------------+-------------+---------+
| << | Binary Left Shift | x << y | 32 |
+------------+-----------------------------+-------------+---------+
| >> | Binary Right Shift | x >> y | 2 |
+------------+-----------------------------+-------------+---------+
Assignment Operators
editThe next table presents all of the assignment operators provided by the Ring language.
Assume variable X=8 then:
+------------+-----------------------------+-------------+---------+
| Operator | Description | Example | Result |
+============+=============================+=============+=========+
| = | Assignment | x = 10 | x=10 |
+------------+-----------------------------+-------------+---------+
| += | Add AND assignment | x += 5 | x=13 |
+------------+-----------------------------+-------------+---------+
| -= | Subtract AND assignment | x -= 3 | x=5 |
+------------+-----------------------------+-------------+---------+
| *= | Multiply AND assignment | x *= 2 | x=16 |
+------------+-----------------------------+-------------+---------+
| /= | Divide AND assignment | x /= 3 | x=2.67 |
+------------+-----------------------------+-------------+---------+
| %= | Modulus AND assignment | x %= 2 | x=0 |
+------------+-----------------------------+-------------+---------+
| <<= | Left shift AND assignment | x <<= 2 | x=32 |
+------------+-----------------------------+-------------+---------+
| >>= | Right shift AND assignment | x >>= 2 | x=2 |
+------------+-----------------------------+-------------+---------+
| &= | Bitwise AND assignment | x &= 4 | x=0 |
+------------+-----------------------------+-------------+---------+
| |= | Bitwise OR and assignment | x |= 3 | x=11 |
+------------+-----------------------------+-------------+---------+
| ^= | Bitwise XOR and assignment | x ^= 4 | x=12 |
+------------+-----------------------------+-------------+---------+
Misc Operators
edit============== ======================================================================
Operator Description
============== ======================================================================
:literal using : before identifier mean literal
Start:End create list contains items from start to end
[list items] define list items
list[index] access list item
obj.name using the dot operator to access object members (attributes/methods).
obj {stmts} execute statements with direct access to object attributes & methods
func(para,...) call function using parameters separated by comma
============== ======================================================================
Operators Precedence
editThe next table present operators from higher precedence (Evaluated first) to lower precedence.
+----------------------------------------------------------------+
| Operator |
+================================================================+
| . [] () {} |
+----------------------------------------------------------------+
| - ~ :Literal [list items] |
+----------------------------------------------------------------+
| ++ -- |
+----------------------------------------------------------------+
| Start:End |
+----------------------------------------------------------------+
| * / % |
+----------------------------------------------------------------+
| + - |
+----------------------------------------------------------------+
| << >> |
+----------------------------------------------------------------+
| & |
+----------------------------------------------------------------+
| \| ^ |
+----------------------------------------------------------------+
| < > <= >= |
+----------------------------------------------------------------+
| = != |
+----------------------------------------------------------------+
| not |
+----------------------------------------------------------------+
| and or |
+----------------------------------------------------------------+
| Assignment = += -= \*= /= %=>>= <<= &= ^= \|= |
+----------------------------------------------------------------+
Example:
See 3+5*4 # prints 23