Skip to main content
The ^= operator is the XOR (exclusive OR) assignment operator. It performs an XOR operation between the left-hand operand and the right-hand operand, and subsequently assigns the evaluated result back to the left-hand operand.

Syntax

This expression is syntactic sugar for the expanded assignment:

Type Compatibility and Mechanics

Because ^= is a compound assignment operator derived from ^, it can be used with any type that defines operator ^. The mechanics of the operation depend on the underlying type:
  • Integers (int and BigInt): Performs a bitwise XOR. The operator evaluates the operands at the binary level, comparing them bit by bit. For each corresponding bit position, it yields 1 if the bits are different (one is 0 and the other is 1), and 0 if the bits are identical (both are 0 or both are 1).
  • Booleans (bool): Performs a logical XOR. It evaluates to true if exactly one of the operands is true, and false if both operands share the same boolean state.
  • Custom Classes: Developers can overload operator ^ within custom classes. Doing so automatically enables the use of the ^= operator for instances of those classes.

Execution Examples

In both executions, the left-hand variable is mutated in place, replacing its original value with the evaluated result of the XOR operation.
Tired of Poor Dart Skills? Fix That With Deep Grasping!Learn More