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.
Go provides different types of operators:
Used for mathematical operations like addition, subtraction, multiplication, etc.
Operator | Description | Example (a = 10 , b = 5 ) |
---|---|---|
+ | Addition | a + b → 15 |
- | Subtraction | a - b → 5 |
* | Multiplication | a * b → 50 |
/ | Division | a / b → 2 |
% | Modulus (Remainder) | a % b → 0 |
✅ Example:
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)
}
Used to compare two values and return a Boolean (true/false).
Operator | Description | Example (a = 10 , b = 5 ) |
---|---|---|
== | Equal to | a == b → false |
!= | Not equal to | a != b → true |
> | Greater than | a > b → true |
< | Less than | a < b → false |
>= | Greater or equal | a >= b → true |
<= | Less or equal | a <= b → false |
✅ Example:
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)
}
Used to perform logical operations on boolean values (true
or false
).
Operator | Description | Example (x = true , y = false ) |
---|---|---|
&& | Logical AND | x && y → false |
` | ` | |
! | Logical NOT | !x → false |
✅ Example:
package main
import "fmt"
func main() {
x, y := true, false
fmt.Println("AND:", x && y)
fmt.Println("OR:", x || y)
fmt.Println("NOT:", !x)
}
Used for performing operations at the bit level.
Operator | Description | Example (a = 5 , b = 3 ) |
---|---|---|
& | AND | a & b → 1 |
` | ` | OR |
^ | XOR | a ^ b → 6 |
<< | Left Shift | a << 1 → 10 |
>> | Right Shift | a >> 1 → 2 |
✅ Example:
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)
}
Used to assign values to variables.
Operator | Example (a = 10 ) | Equivalent |
---|---|---|
= | a = 10 | a = 10 |
+= | a += 5 | a = a + 5 |
-= | a -= 3 | a = a - 3 |
*= | a *= 2 | a = a * 2 |
/= | a /= 2 | a = a / 2 |
%= | a %= 3 | a = a % 3 |
✅ Example:
package main
import "fmt"
func main() {
a := 10
a += 5
fmt.Println("Updated a:", a)
}
🔹 Address of (&
) Operator: Gets the memory address of a variable.
🔹 Pointer (*
) Operator: Used with pointers to access values.
✅ Example:
package main
import "fmt"
func main() {
num := 42
ptr := &num // Address of num
fmt.Println("Address:", ptr)
fmt.Println("Value:", *ptr) // Dereferencing pointer
}
An expression is any valid combination of operators and operands that results in a value.
✅ Example Expressions:
result1 := (10 + 5) * 2 // Arithmetic Expression
result2 := (10 > 5) && (5 < 3) // Logical Expression
result3 := "Hello" + " Go" // String Concatenation
✅ Example Program with Expressions:
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)
}
✅ 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 প্রোগ্রামিং ভাষায় অপারেটর হল এমন কিছু প্রতীক যা ভেরিয়েবল বা মানের উপর বিভিন্ন ধরণের গণিত, তুলনা, লজিক্যাল বা বিটওয়াইজ অপারেশন সম্পাদন করতে ব্যবহৃত হয়। এক্সপ্রেশন হল ভেরিয়েবল, অপারেটর এবং মানের সংমিশ্রণ যা একটি নির্দিষ্ট ফলাফল প্রদান করে।
এই অপারেটরগুলো সাধারণ গণিতের জন্য ব্যবহৃত হয়, যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি।
অপারেটর | বর্ণনা | উদাহরণ (a = 10 , b = 5 ) |
---|---|---|
+ | যোগ | a + b → 15 |
- | বিয়োগ | a - b → 5 |
* | গুণ | a * b → 50 |
/ | ভাগ | a / b → 2 |
% | ভাগশেষ | a % b → 0 |
✅ উদাহরণ প্রোগ্রাম:
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)
}
এগুলো দুটি মান তুলনা করে এবং সত্য (true) বা মিথ্যা (false) রিটার্ন করে।
অপারেটর | বর্ণনা | উদাহরণ (a = 10 , b = 5 ) |
---|---|---|
== | সমান হলে সত্য | a == b → false |
!= | অসমান হলে সত্য | a != b → true |
> | বড় হলে সত্য | a > b → true |
< | ছোট হলে সত্য | a < b → false |
>= | বড় অথবা সমান হলে সত্য | a >= b → true |
<= | ছোট অথবা সমান হলে সত্য | a <= b → false |
✅ উদাহরণ:
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)
}
এই অপারেটরগুলো বুলিয়ান (true/false) মানের উপর কাজ করে।
অপারেটর | বর্ণনা | উদাহরণ (x = true , y = false ) |
---|---|---|
&& | AND (উভয় সত্য হলে সত্য) | x && y → false |
` | ` | |
! | NOT (বিপরীত মান ফেরত দেয়) | !x → false |
✅ উদাহরণ:
package main
import "fmt"
func main() {
x, y := true, false
fmt.Println("AND:", x && y)
fmt.Println("OR:", x || y)
fmt.Println("NOT:", !x)
}
বিট লেভেলে বিট অপারেশন সম্পন্ন করতে ব্যবহৃত হয়।
অপারেটর | বর্ণনা | উদাহরণ (a = 5 , b = 3 ) |
---|---|---|
& | AND | a & b → 1 |
` | ` | OR |
^ | XOR | a ^ b → 6 |
<< | Left Shift | a << 1 → 10 |
>> | Right Shift | a >> 1 → 2 |
✅ উদাহরণ:
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)
}
এই অপারেটরগুলো ভেরিয়েবলে মান সংরক্ষণ করতে ব্যবহৃত হয়।
অপারেটর | উদাহরণ (a = 10 ) | সমতুল্য |
---|---|---|
= | a = 10 | a = 10 |
+= | a += 5 | a = a + 5 |
-= | a -= 3 | a = a - 3 |
*= | a *= 2 | a = a * 2 |
/= | a /= 2 | a = a / 2 |
%= | a %= 3 | a = a % 3 |
✅ উদাহরণ:
package main
import "fmt"
func main() {
a := 10
a += 5
fmt.Println("পরিবর্তিত a:", a)
}
🔹 Address of (&
) অপারেটর: কোনো ভেরিয়েবলের মেমরি ঠিকানা বের করতে ব্যবহৃত হয়।
🔹 Pointer (*
) অপারেটর: কোনো পয়েন্টারের মাধ্যমে মান বের করতে ব্যবহৃত হয়।
✅ উদাহরণ:
package main
import "fmt"
func main() {
num := 42
ptr := &num // মেমরি ঠিকানা সংরক্ষণ
fmt.Println("Address:", ptr)
fmt.Println("Value:", *ptr) // পয়েন্টার ডিরেফারেন্সিং
}
👉 এক্সপ্রেশন হল কোনো ভেরিয়েবল, অপারেটর এবং মানের সংমিশ্রণ যা একটি নির্দিষ্ট ফলাফল প্রদান করে।
✅ উদাহরণ:
result := (10 + 5) * 2 // গাণিতিক এক্সপ্রেশন
logical := (10 > 5) && (5 < 3) // লজিক্যাল এক্সপ্রেশন
str := "Hello" + " Go" // স্ট্রিং সংযোজন
✅ অপারেটর ব্যবহার করে ভেরিয়েবলের মান পরিবর্তন, তুলনা, গণনা এবং লজিক্যাল অপারেশন করা যায়।
✅ এক্সপ্রেশন অপারেটরের সাহায্যে একটি নির্দিষ্ট ফলাফল তৈরি করে।
✅ Go স্বয়ংক্রিয় টাইপ কনভার্সন করে না, তাই টাইপ পরিবর্তন স্পষ্টভাবে করতে হয়।