# Appendix B: Operators

Tokay implements the following operators for use in expressions. The operators are ordered by precedence, operators in the same row share the same precedence.

Don't confuse with some rows which look as redundant, this depends on either the operator is delimited by whitespace from its operands or not.

Operator | Description | Associativity |
---|---|---|

= += -= *= /= //= %= |
Assignment, combined operation-assignment | left |

|| | Logical or | left |

&& | Logical and | left |

== != < <= >= > |
Equal, unequal, comparison | left |

+ - |
Add, subtract | left |

* / // % |
Multiply, divide, integer divide, modulo | left |

- ! |
Negate, not | right |

++ -- |
Increment, decrement | right |

(...) | Inline sequence | left |

(...) [...] . |
Call parameters, subscript, attribute | left |

Operators produce different results depending on the data-types of their operands. For example, `3 * 10`

multiplies 10 by 3, whereas `3 * "test"`

creates a new string repeating "test" 3 times. Try out the results of different operands in a Tokay REPL for clarification.