Dart Basic- Operators

Table of Contents

Related Tutorials

Operators in Dart

Every expression is composed of operators and operands. Consider the equation “3 + 3”. Here “+” is an operator, and “3,3” are operands.

 In this chapter, we will discuss the operators that are available in Dart.

  • Arithmetic Operators
  • Equality and Relational Operators
  • Type test Operators
  • Bitwise Operators
  • Assignment Operators
  • Logical Operators

Arithmetic Operators

The arithmetic operators in the Dart programming language are:

  • +(Addition)
  • -(Subtraction)
  • %(Modulo)
  • *(Multiplication)
  • /(Division)
  • ++(Increment)
  • –(Decrement)
  • ~/(Divide,return an int value)

Example:

void main() {
  int num1 = 10;
  int num2 = 3;

  print("Addition: ${num1 + num2}");
  print("Subtraction: ${num1 - num2}");
  print("Multiplication: ${num1 * num2}");
  print("Division: ${num1 / num2}");
  print("Modulus: ${num1 % num2}");
}

Equality and Relational Operators

Relational Operators test or define the kind of relationship between two entities.

OperatorDescriptionExample
>Greater than(A > B) is False
<Lesser than(A < B) is True
>=Greater than or equal to(A >= B) is False
<=Lesser than or equal to(A <= B) is True
==Equality(A==B) is False
!=Not equal(A!=B) is True

Example:

void main() {
  int num1 = 10;
  int num2 = 3;

  print("num1 == num2: ${num1 == num2}");
  print("num1 != num2: ${num1 != num2}");
  print("num1 > num2: ${num1 > num2}");
  print("num1 < num2: ${num1 < num2}");
  print("num1 >= num2: ${num1 >= num2}");
  print("num1 <= num2: ${num1 <= num2}");
}

Type test Operators

These operators are handy for checking types at runtime.

OperatorMeaning
isTrue if the object has the specified type
is!False if the object has the specified type

Example:

void main() {
  var num1 = 10;

  if (num1 is int) {
    print("num1 is an integer");
  }

  if (num1 is! double) {
    print("num1 is not a double");
  }
}

Bitwise Operators

The following table lists the bitwise operators available in Dart and their roles −

OperatorDescriptionExample
Bitwise ANDa & bReturns a one in each bit position for which the corresponding bits of both operands are ones.
Bitwise ORa | bReturns a one in each bit position for which the corresponding bits of either or both operands are ones.
Bitwise XORa ^ bReturns a one in each bit position for which the corresponding bits of either but not both operands are ones.
Bitwise NOT~ aInverts the bits of its operand.
Left shifta ≪ bShifts an in binary representation b (< 32) bits to the left, shifting in zeroes from the right.
Signpropagating right shifta ≫ bShifts an in binary representation b (< 32) bits to the right, discarding bits shifted off.

Example:

void main() {
  int num1 = 5;
  int num2 = 3;

  print("Bitwise AND: ${num1 & num2}");
  print("Bitwise OR: ${num1 | num2}");
  print("Bitwise XOR: ${num1 ^ num2}");
  print("Bitwise NOT: ${~num1}");
  print("Left shift: ${num1 << 2}");
  print("Right shift: ${num1 >> 1}");
}

Assignment Operators

The following table lists the assignment operators available in Dart.

1=(Simple Assignment )Assigns values from the right side operand to the left side operand Ex:C = A + B will assign the value of A + B into C
2??=Assign the value only if the variable is null
3+=(Add and Assignment)It adds the right operand to the left operand and assigns the result to the left operand.Ex: C += A is equivalent to C = C + A
4─=(Subtract and Assignment)It subtracts the right operand from the left operand and assigns the result to the left operand.Ex: C -= A is equivalent to C = C – A
5*=(Multiply and Assignment)It multiplies the right operand with the left operand and assigns the result to the left operand.Ex: C *= A is equivalent to C = C * A
6/=(Divide and Assignment)It divides the left operand with the right operand and assigns the result to the left operand.

Example:

void main() {
  int a = 5;
  int b = 2;
  
  // Assign the value of b to a and increment b by 1
  a = b++;
  print("a = $a, b = $b"); // Output: a = 2, b = 3
  
  // Assign the value of b to a and decrement b by 1
  a = b--;
  print("a = $a, b = $b"); // Output: a = 3, b = 2
  
  // Add 2 to a and assign the result to a
  a += 2;
  print("a = $a"); // Output: a = 5
  
  // Subtract 1 from a and assign the result to a
  a -= 1;
  print("a = $a"); // Output: a = 4
  
  // Multiply a by 2 and assign the result to a
  a *= 2;
  print("a = $a"); // Output: a = 8
  
  // Divide a by 2 and assign the result to a
  a ~/= 2;
  print("a = $a"); // Output: a = 4
  
  // Take the remainder when a is divided by 3 and assign the result to a
  a %= 3;
  print("a = $a"); // Output: a = 1
  
  // Shift the bits of a one position to the left and assign the result to a
  a <<= 1;
  print("a = $a"); // Output: a = 2
  
  // Shift the bits of a one position to the right and assign the result to a
  a >>= 1;
  print("a = $a"); // Output: a = 1
  
  // Bitwise AND of a and 3, and assign the result to a
  a &= 3;
  print("a = $a"); // Output: a = 1
  
  // Bitwise OR of a and 2, and assign the result to a
  a |= 2;
  print("a = $a"); // Output: a = 3
  
  // Bitwise XOR of a and 3, and assign the result to a
  a ^= 3;
  print("a = $a"); // Output: a = 0
}

Logical Operators

Logical operators are used to combining two or more conditions.

OperatorDescriptionExample
&&And − The operator returns true only if all the expressions specified return true(A > 10 && B > 10) is False.
||OR − The operator returns true if at least one of the expressions specified return true(A > 10 || B > 10) is True.
!NOT − The operator returns the inverse of the expression’s result. For E.g.: !(7>5) returns false!(A > 10) is True.

Example:

void main() {
  bool a = true;
  bool b = false;

  // Logical AND operator
  print(a && b); // Output: false

  // Logical OR operator
  print(a || b); // Output: true

  // Logical NOT operator
  print(!a); // Output: false
}

Conditional Expressions

Dart has two operators that let you evaluate expressions that might otherwise require if-else statements −

condition? expr1 : expr2

If the condition is true, then the expression evaluates expr1 (and returns its value); otherwise, it evaluates and returns the value of expr2.

Example:

void main() {
  int x = 10;
  int y = 20;

  // using ternary operator
  int result1 = x > y ? x : y;
  print("Result 1: $result1");

  // using if-else statement
  int result2;
  if (x > y) {
    result2 = x;
  } else {
    result2 = y;
  }
  print("Result 2: $result2");

  // using null-aware operator
  String name;
  String displayName = name ?? "User";
  print("Display Name: $displayName");
}

Output:

Result 1: 20
Result 2: 20
Display Name: User
Share The Tutorial With Your Friends
Facebook
Twitter
LinkedIn
Email
WhatsApp
Skype