Industrial Training




Dart Programming - Operators


An expression is a special kind of statement that evaluates to a value. Every expression is composed of −


    Operands − Represents the data
    Operator − Defines how the operands will be processed to produce a value.

Consider the following expression – "2 + 3". In this expression, 2 and 3 are operands and the symbol "+" (plus) is the operator.
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 following table shows the arithmetic operators supported by Dart.


Sr.No Operators & Meaning
1

+
Add

2


Subtract

3

-expr
Unary minus, also known as negation (reverse the sign of the expression)

4

*
Multiply

5

/
Divide

6

~/
Divide, returning an integer result

7

%
Get the remainder of an integer division (modulo)

8

++
Increment

9

--
Decrement


Equality and Relational Operators


Relational Operators tests or defines the kind of relationship between two entities. Relational operators return a Boolean value i.e. true/ false.


Assume the value of A is 10 and B is 20.


Operator Description Example
>

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


Type test Operators


These operators are handy for checking types at runtime.


Operator Meaning
is

True if the object has the specified type

is!

False if the object has the specified type


Bitwise Operators


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


Operator Description Example
Bitwise AND

a & b

Returns a one in each bit position for which the corresponding bits of both operands are ones.

Bitwise OR

a | b

Returns a one in each bit position for which the corresponding bits of either or both operands are ones.

Bitwise XOR

a ^ b

Returns a one in each bit position for which the corresponding bits of either but not both operands are ones.

Bitwise NOT

~ a

Inverts the bits of its operand.

Left shift

a ≪ b

Shifts a in binary representation b (< 32) bits to the left, shifting in zeroes from the right.

Signpropagating right shift

a ≫ b

Shifts a in binary representation b (< 32) bits to the right, discarding bits shifted off.


Assignment Operators


The following table lists the assignment operators available in Dart.


Sr.No Operator & Description
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.

Note − Same logic applies to Bitwise operators, so they will become ≪=, ≫=, ≫=, ≫=, |= and ^=.


Logical Operators


Logical operators are used to combine two or more conditions. Logical operators return a Boolean value. Assume the value of variable A is 10 and B is 20.


Operator Description Example
&&

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.


Conditional Expressions


Dart has two operators that let you evaluate expressions that might otherwise require ifelse statements −


condition ? expr1 : expr2

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


expr1 ?? expr2

If expr1 is non-null, returns its value; otherwise, evaluates and returns the value of expr2


Example


The following example shows how you can use conditional expression in Dart −


void main() { 
   var a = 10; 
   var res = a > 12 ? "value greater than 10":"value lesser than or equal to 10"; 
   print(res); 
} 

It will produce the following output −


value lesser than or equal to 10

Example


Let’s take another example −


void main() { 
   var a = null; 
   var b = 12; 
   var res = a ?? b; 
   print(res); 
}

It will produce the following output −


12


Hi I am Pluto.