Operators and Expressions in Go

List Topics
February 15, 2025
No Comments
5 min read

In Go, operators are symbols used to perform operations on variables and values. Expressions are combinations of variables, operators, and values that produce a result.

1. Types of Operators in Go

Go provides different types of operators:

  1. Arithmetic Operators
  2. Relational (Comparison) Operators
  3. Logical Operators
  4. Bitwise Operators
  5. Assignment Operators
  6. Miscellaneous Operators

2. Arithmetic Operators

Used for mathematical operations like addition, subtraction, multiplication, etc.

OperatorDescriptionExample (a = 10, b = 5)
+Additiona + b → 15
-Subtractiona - b → 5
*Multiplicationa * b → 50
/Divisiona / b → 2
%Modulus (Remainder)a % b → 0

Example:

Go
package main

import "fmt"

func main() {
    a, b := 10, 5
    fmt.Println("Addition:", a+b)
    fmt.Println("Subtraction:", a-b)
    fmt.Println("Multiplication:", a*b)
    fmt.Println("Division:", a/b)
    fmt.Println("Modulus:", a%b)
}

3. Relational (Comparison) Operators

Used to compare two values and return a Boolean (true/false).

OperatorDescriptionExample (a = 10, b = 5)
==Equal toa == b → false
!=Not equal toa != b → true
>Greater thana > b → true
<Less thana < b → false
>=Greater or equala >= b → true
<=Less or equala <= b → false

Example:

Go
package main

import "fmt"

func main() {
    a, b := 10, 5
    fmt.Println("Equal:", a == b)
    fmt.Println("Not Equal:", a != b)
    fmt.Println("Greater:", a > b)
    fmt.Println("Less:", a < b)
}

4. Logical Operators

Used to perform logical operations on boolean values (true or false).

OperatorDescriptionExample (x = true, y = false)
&&Logical ANDx && y → false
``
!Logical NOT!x → false

Example:

Go
package main

import "fmt"

func main() {
    x, y := true, false
    fmt.Println("AND:", x && y)
    fmt.Println("OR:", x || y)
    fmt.Println("NOT:", !x)
}

5. Bitwise Operators

Used for performing operations at the bit level.

OperatorDescriptionExample (a = 5, b = 3)
&ANDa & b → 1
``OR
^XORa ^ b → 6
<<Left Shifta << 1 → 10
>>Right Shifta >> 1 → 2

Example:

Go
package main

import "fmt"

func main() {
    a, b := 5, 3
    fmt.Println("Bitwise AND:", a&b)
    fmt.Println("Bitwise OR:", a|b)
    fmt.Println("Bitwise XOR:", a^b)
    fmt.Println("Left Shift:", a<<1)
    fmt.Println("Right Shift:", a>>1)
}

6. Assignment Operators

Used to assign values to variables.

OperatorExample (a = 10)Equivalent
=a = 10a = 10
+=a += 5a = a + 5
-=a -= 3a = a - 3
*=a *= 2a = a * 2
/=a /= 2a = a / 2
%=a %= 3a = a % 3

Example:

Go
package main

import "fmt"

func main() {
    a := 10
    a += 5
    fmt.Println("Updated a:", a)
}

7. Miscellaneous Operators

🔹 Address of (&) Operator: Gets the memory address of a variable.
🔹 Pointer (*) Operator: Used with pointers to access values.

Example:

Go
package main

import "fmt"

func main() {
    num := 42
    ptr := &num // Address of num
    fmt.Println("Address:", ptr)
    fmt.Println("Value:", *ptr) // Dereferencing pointer
}

8. Expressions in Go

An expression is any valid combination of operators and operands that results in a value.

Example Expressions:

Go
result1 := (10 + 5) * 2   // Arithmetic Expression
result2 := (10 > 5) && (5 < 3) // Logical Expression
result3 := "Hello" + " Go" // String Concatenation

Example Program with Expressions:

Go
package main

import "fmt"

func main() {
    a, b := 10, 5
    result := (a + b) * 2 // Arithmetic Expression
    fmt.Println("Result:", result)

    logicalResult := (a > b) && (b < 3) // Logical Expression
    fmt.Println("Logical Result:", logicalResult)
}

Summary

Operators are used to perform operations on values.
Expressions combine operators and values to produce results.
Go does not support automatic type conversion in expressions – explicit conversion is required.
Use &&, ||, and ! for logical operations and &, |, ^ for bitwise operations.


Go অপারেটর এবং এক্সপ্রেশন: বিস্তারিত ব্যাখ্যা

Go প্রোগ্রামিং ভাষায় অপারেটর হল এমন কিছু প্রতীক যা ভেরিয়েবল বা মানের উপর বিভিন্ন ধরণের গণিত, তুলনা, লজিক্যাল বা বিটওয়াইজ অপারেশন সম্পাদন করতে ব্যবহৃত হয়। এক্সপ্রেশন হল ভেরিয়েবল, অপারেটর এবং মানের সংমিশ্রণ যা একটি নির্দিষ্ট ফলাফল প্রদান করে।

১. Go-তে অপারেটরের ধরন

  1. গাণিতিক অপারেটর (Arithmetic Operators)
  2. তুলনামূলক অপারেটর (Relational/Comparison Operators)
  3. লজিক্যাল অপারেটর (Logical Operators)
  4. বিটওয়াইজ অপারেটর (Bitwise Operators)
  5. অ্যাসাইনমেন্ট অপারেটর (Assignment Operators)
  6. অন্যান্য অপারেটর (Miscellaneous Operators)

২. গাণিতিক অপারেটর (Arithmetic Operators)

এই অপারেটরগুলো সাধারণ গণিতের জন্য ব্যবহৃত হয়, যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি।

অপারেটরবর্ণনাউদাহরণ (a = 10, b = 5)
+যোগa + b → 15
-বিয়োগa - b → 5
*গুণa * b → 50
/ভাগa / b → 2
%ভাগশেষa % b → 0

উদাহরণ প্রোগ্রাম:

Go
package main

import "fmt"

func main() {
    a, b := 10, 5
    fmt.Println("যোগ:", a+b)
    fmt.Println("বিয়োগ:", a-b)
    fmt.Println("গুণ:", a*b)
    fmt.Println("ভাগ:", a/b)
    fmt.Println("ভাগশেষ:", a%b)
}

৩. তুলনামূলক অপারেটর (Comparison Operators)

এগুলো দুটি মান তুলনা করে এবং সত্য (true) বা মিথ্যা (false) রিটার্ন করে।

অপারেটরবর্ণনাউদাহরণ (a = 10, b = 5)
==সমান হলে সত্যa == b → false
!=অসমান হলে সত্যa != b → true
>বড় হলে সত্যa > b → true
<ছোট হলে সত্যa < b → false
>=বড় অথবা সমান হলে সত্যa >= b → true
<=ছোট অথবা সমান হলে সত্যa <= b → false

উদাহরণ:

Go
package main

import "fmt"

func main() {
    a, b := 10, 5
    fmt.Println("সমান?", a == b)
    fmt.Println("অসমান?", a != b)
    fmt.Println("বড়?", a > b)
    fmt.Println("ছোট?", a < b)
}

৪. লজিক্যাল অপারেটর (Logical Operators)

এই অপারেটরগুলো বুলিয়ান (true/false) মানের উপর কাজ করে।

অপারেটরবর্ণনাউদাহরণ (x = true, y = false)
&&AND (উভয় সত্য হলে সত্য)x && y → false
``
!NOT (বিপরীত মান ফেরত দেয়)!x → false

উদাহরণ:

Go
package main

import "fmt"

func main() {
    x, y := true, false
    fmt.Println("AND:", x && y)
    fmt.Println("OR:", x || y)
    fmt.Println("NOT:", !x)
}

৫. বিটওয়াইজ অপারেটর (Bitwise Operators)

বিট লেভেলে বিট অপারেশন সম্পন্ন করতে ব্যবহৃত হয়।

অপারেটরবর্ণনাউদাহরণ (a = 5, b = 3)
&ANDa & b → 1
``OR
^XORa ^ b → 6
<<Left Shifta << 1 → 10
>>Right Shifta >> 1 → 2

উদাহরণ:

Go
package main

import "fmt"

func main() {
    a, b := 5, 3
    fmt.Println("Bitwise AND:", a&b)
    fmt.Println("Bitwise OR:", a|b)
    fmt.Println("Bitwise XOR:", a^b)
    fmt.Println("Left Shift:", a<<1)
    fmt.Println("Right Shift:", a>>1)
}

৬. অ্যাসাইনমেন্ট অপারেটর (Assignment Operators)

এই অপারেটরগুলো ভেরিয়েবলে মান সংরক্ষণ করতে ব্যবহৃত হয়।

অপারেটরউদাহরণ (a = 10)সমতুল্য
=a = 10a = 10
+=a += 5a = a + 5
-=a -= 3a = a - 3
*=a *= 2a = a * 2
/=a /= 2a = a / 2
%=a %= 3a = a % 3

উদাহরণ:

Go
package main

import "fmt"

func main() {
    a := 10
    a += 5
    fmt.Println("পরিবর্তিত a:", a)
}

৭. অন্যান্য অপারেটর (Miscellaneous Operators)

🔹 Address of (&) অপারেটর: কোনো ভেরিয়েবলের মেমরি ঠিকানা বের করতে ব্যবহৃত হয়।
🔹 Pointer (*) অপারেটর: কোনো পয়েন্টারের মাধ্যমে মান বের করতে ব্যবহৃত হয়।

উদাহরণ:

Go
package main

import "fmt"

func main() {
    num := 42
    ptr := &num // মেমরি ঠিকানা সংরক্ষণ
    fmt.Println("Address:", ptr)
    fmt.Println("Value:", *ptr) // পয়েন্টার ডিরেফারেন্সিং
}

৮. এক্সপ্রেশন (Expressions) কী?

👉 এক্সপ্রেশন হল কোনো ভেরিয়েবল, অপারেটর এবং মানের সংমিশ্রণ যা একটি নির্দিষ্ট ফলাফল প্রদান করে।

উদাহরণ:

Go
result := (10 + 5) * 2   // গাণিতিক এক্সপ্রেশন
logical := (10 > 5) && (5 < 3) // লজিক্যাল এক্সপ্রেশন
str := "Hello" + " Go" // স্ট্রিং সংযোজন

সারাংশ (Summary)

অপারেটর ব্যবহার করে ভেরিয়েবলের মান পরিবর্তন, তুলনা, গণনা এবং লজিক্যাল অপারেশন করা যায়।
এক্সপ্রেশন অপারেটরের সাহায্যে একটি নির্দিষ্ট ফলাফল তৈরি করে।
Go স্বয়ংক্রিয় টাইপ কনভার্সন করে না, তাই টাইপ পরিবর্তন স্পষ্টভাবে করতে হয়।

©2025 Linux Bangla | Developed & Maintaind by Linux Bangla.