Scala: Operators Cheat Sheet

Arithmetic Operators

OperatorDescriptionExample
+Adds two operandsx+y
Subtracts second operand from the firstx-y
*Multiplies both operandsx*y
/Divides numerator by de-numeratorx/y
%Modulus operator returns the remainder when the first operand is divided by the second.x%y will give 0
**Returns exponential(power) of the operandsc**y

Relational Operators

OperatorDescriptionExample
==Checks if the values of two operands are equal or not, if yes then condition becomes true.(3==3) return true
!=Checks if the values of two operands are equal or not, if values are not equal then condition becomes true.(3!=3) return false
>Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true.(7>3) return true
<Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true.(7<3) return false
>=Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true.(3>=3) return true
<=Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true.(3<=3) return true

Logical Operators

OperatorDescriptionExample
&&It is called Logical AND operator. If both the operands are non zero then condition becomes true.(a&&b) is false.
||It is called Logical OR Operator. If any of the two operands is non zero then condition becomes true.(a||b) is true.
!It is called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false.!(a&&b) is true.

Assignment Operators

OperatorDescriptionExample
=Simple assignment operator, Assigns values from right side operands to left side operandC = A + B will assign value of A + B into C
+=Add AND assignment operator, It adds right operand to the left operand and assign the result to left operandC += A is equivalent to C = C + A
-=Subtract AND assignment operator, It subtracts right operand from the left operand and assign the result to left operandC -= A is equivalent to C = C – A
*=Multiply AND assignment operator, It multiplies right operand with the left operand and assign the result to left operandC *= A is equivalent to C = C * A
/=Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operandC /= A is equivalent to C = C / A
%=Modulus AND assignment operator, It takes modulus using two operands and assign the result to left operandC %= A is equivalent to C = C % A
<<=Left shift AND assignment operatorC <<= 2 is same as C = C << 2
>>=Right shift AND assignment operatorC >>= 2 is same as C = C >> 2
&=Bitwise AND assignment operatorC &= 2 is same as C = C & 2
^=bitwise exclusive OR and assignment operatorC ^= 2 is same as C = C ^ 2
|=bitwise inclusive OR and assignment operatorC |= 2 is same as C = C | 2

Bitwise Operators

Bitwise operator works on bits and performs bit by bit operation. Below is the truth tables for &, |, and ^

pqp & qp | qp ^ q
00000
01011
11110
10011

The Bitwise operators supported by Scala language is listed in the following table. Assume variable A holds 60 and variable B holds 13

OperatorDescriptionExample
&Binary AND Operator copies a bit to the result if it exists in both operands.(A & B) will give 12, which is 0000 1100
|Binary OR Operator copies a bit if it exists in either operand.(A | B) will give 61, which is 0011 1101
^Binary XOR Operator copies the bit if it is set in one operand but not both.(A ^ B) will give 49, which is 0011 0001
~Binary Ones Complement Operator is unary and has the effect of ‘flipping’ bits.(~A ) will give -61, which is 1100 0011 in 2’s complement form due to a signed binary number.
<<Binary Left Shift Operator. The bit positions of the left operands value is moved left by the number of bits specified by the right operand.A << 2 will give 240, which is 1111 0000
>>Binary Right Shift Operator. The Bit positions of the left operand value is moved right by the number of bits specified by the right operand.A >> 2 will give 15, which is 1111
>>>Shift right zero fill operator. The left operands value is moved right by the number of bits specified by the right operand and shifted values are filled up with zeros.A >>>2 will give 15 which is 0000 1111

Operators Precedence

CategoryOperatorAssociativity
Postfix() []Left to right
Unary! ~Right to left
Multiplicative* / %Left to right
Additive+ –Left to right
Shift>> >>> <<Left to right
Relational> >= < <=Left to right
Equality== !=Left to right
Bitwise AND&Left to right
Bitwise XOR^Left to right
Bitwise OR|Left to right
Logical AND&&Left to right
Logical OR||Left to right
Assignment= += -= *= /= %= >>= <<= &= ^= |=Right to left
Comma,Left to right

Leave a Reply

Your email address will not be published. Required fields are marked *