Go: Operators

Arithmetic Operators

OperatorDescriptionExample
+Adds two operandsx + y
Subtracts second operand from the firstx – y
*Multiplies both operandsx * y
/Divides the numerator by the denominator.x / y
%Modulus operator; gives the remainder after an integer division.x % y
++Increment operator. It increases the integer value by one.x++
Decrement operator. It decreases the integer value by one.x–

Relational Operators

Assume variable x holds 15 and variable y holds 45, then:

OperatorDescriptionExample
==It checks if the values of two operands are equal or not; if yes, the condition becomes true.(A == B) is not true.
!=It checks if the values of two operands are equal or not; if the values are not equal, then the condition becomes true.(A != B) is true.
>It checks if the value of left operand is greater than the value of right operand; if yes, the condition becomes true.(A > B) is not true.
<It checks if the value of left operand is less than the value of the right operand; if yes, the condition becomes true.(A < B) is true.
>=It checks if the value of the left operand is greater than or equal to the value of the right operand; if yes, the condition becomes true.(A >= B) is not true.
<=It checks if the value of left operand is less than or equal to the value of right operand; if yes, the condition becomes true.(A <= B) is true.

Logical Operators

Assume variable x holds 1 and variable y holds 0, then:

OperatorDescriptionExample
&&Called Logical AND operator. If both the operands are non-zero, then the condition becomes true.(x && y) is false.
||Called Logical OR Operator. If any of the two operands are non-zero, then the condition becomes true.(x || y) is true.
!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.!(x && y) is true.

Bitwise Operators

Bitwise operators work on bits and perform the bit-by-bit operation. The truth tables for &, |, and ^ are as follows:

pqp & qp | qp ^ q
00000
01011
11110
10011

In Go language, there are 6 bitwise operators which work at bit level or used to perform bit by bit operations:

OperatorDescriptionExample
&Binary AND Operator copies a bit to the result if it exists in both operands.(x & y) will give 12, which is 0000 1100
|Binary OR Operator copies a bit if it exists in either operand.(x | y) will give 61, which is 0011 1101
^Binary XOR Operator copies the bit if it is set in one operand but not both.(x ^ y) will give 49, which is 0011 0001
<<Binary Left Shift Operator. The left operand’s value is moved left by the number of bits specified by the right operand.x << 2 will give 240 which is 1111 0000
>>Binary Right Shift Operator. The left operand’s value is moved right by the number of bits specified by the right operand.x >> 2 will give 15 which is 0000 1111
&^ Binary AND NOT Operator. This is a bit clear operator.

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

Miscellaneous Operators

  • &: This operator returns the address of the variable.
  • *: This operator provides a pointer to a variable.
  • <-:The name of this operator is received. It is used to receive a value from the channel.

Operators Precedence

CategoryOperatorAssociativity
Postfix() [] -> . ++ – –Left to right
Unary+ – ! ~ ++ – – (type)* & sizeofRight 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 *