Go-তে Map এর ম্যানিপুলেশন (Insert, Delete, Update)
Map হল একটি ডেটা স্ট্রাকচার যা কী (key) এবং মান (value) জোড়া ধারণ করে। Go-তে map একটি অ্যাসোসিয়েটিভ অ্যারে বা হ্যাশ টেবিলের মতো কাজ করে, যেখানে আপনি একটি কী দিয়ে মান অ্যাক্সেস করতে পারেন। map গুলি ডাইনামিকভাবে সাইজ হতে পারে, এবং এগুলি খুবই দ্রুত key-value পেয়ার অনুসন্ধান করতে সহায়ক।
১. Map ডিফাইনেশন এবং Initialization
Go তে একটি map তৈরি করতে make ফাংশন বা লিটারাল সিনট্যাক্স ব্যবহার করা হয়।
১.১ Map ডিফাইনেশন এবং Initialization
package main
import "fmt"
func main() {
// Make ফাংশন দিয়ে map তৈরি করা
m := make(map[string]int)
// মান সেট করা
m["Alice"] = 30
m["Bob"] = 25
fmt.Println(m) // আউটপুট: map[Alice:30 Bob:25]
}এখানে, m একটি map যার কী টাইপ string এবং মানের টাইপ int। make(map[string]int) ফাংশন দ্বারা একটি খালি map তৈরি করা হয়েছে।
২. Map-এ Insert (এন্ট্রি ইনসার্ট করা)
Map এ একটি নতুন কী-value পেয়ার ইনসার্ট করতে, আপনি সোজা ডট অপারেটর দিয়ে মান অ্যাসাইন করতে পারেন।
২.১ Insert Example
package main
import "fmt"
func main() {
// Map তৈরি
m := make(map[string]int)
// নতুন কী-value পেয়ার ইনসার্ট
m["John"] = 40
m["Alice"] = 25
fmt.Println(m) // আউটপুট: map[John:40 Alice:25]
}এখানে, "John" এবং "Alice" কী দুটি নতুন value পেয়ার 40 এবং 25 সাথে ইনসার্ট করা হয়েছে।
৩. Map থেকে Delete (এন্ট্রি মুছে ফেলা)
Map থেকে একটি কী-value পেয়ার মুছে ফেলতে, Go তে delete() ফাংশন ব্যবহার করা হয়।
৩.১ Delete Example
package main
import "fmt"
func main() {
// Map তৈরি
m := map[string]int{
"John": 40,
"Alice": 25,
"Bob": 30,
}
fmt.Println("Before delete:", m) // আউটপুট: map[John:40 Alice:25 Bob:30]
// Bob এর entry মুছে ফেলা
delete(m, "Bob")
fmt.Println("After delete:", m) // আউটপুট: map[John:40 Alice:25]
}এখানে, delete(m, "Bob") দ্বারা "Bob" নামক কী-টির মানটি মুছে দেওয়া হয়েছে।
৪. Map-এ Update (এন্ট্রি আপডেট করা)
Map-এ একটি কী-এর মান আপডেট করতে, আপনি কেবল ওই কী-এর জন্য নতুন মান অ্যাসাইন করতে পারেন। এটি ইনসার্টের মতোই কাজ করে, কিন্তু যদি কী-টি আগে থেকেই উপস্থিত থাকে, তবে এর মান আপডেট হয়।
৪.১ Update Example
package main
import "fmt"
func main() {
// Map তৈরি
m := map[string]int{
"John": 40,
"Alice": 25,
}
fmt.Println("Before update:", m) // আউটপুট: map[John:40 Alice:25]
// John এর বয়স আপডেট করা
m["John"] = 45
fmt.Println("After update:", m) // আউটপুট: map[John:45 Alice:25]
}এখানে, "John" এর বয়স ৪০ থেকে ৪৫ এ আপডেট করা হয়েছে।
৫. Map-এর উপস্থিতি চেক করা
আপনি যদি জানতে চান যে একটি কী map-এ রয়েছে কিনা, তাহলে value, ok := m[key] এই সিনট্যাক্স ব্যবহার করা যেতে পারে। এখানে, ok একটি বুলিয়ান মান প্রদান করবে, যা true হলে মানটি map-এ পাওয়া গেছে এবং false হলে মানটি উপস্থিত নেই।
৫.১ Map-এর উপস্থিতি চেক করা
package main
import "fmt"
func main() {
// Map তৈরি
m := map[string]int{
"John": 40,
"Alice": 25,
}
// উপস্থিতি চেক করা
value, ok := m["Alice"]
if ok {
fmt.Println("Alice's age is:", value) // আউটপুট: Alice's age is: 25
} else {
fmt.Println("Alice not found!")
}
// যদি একটি কী map-এ না থাকে
value, ok = m["Bob"]
if ok {
fmt.Println("Bob's age is:", value)
} else {
fmt.Println("Bob not found!") // আউটপুট: Bob not found!
}
}এখানে, m["Alice"] এর মান পাওয়া গেলে, তা value তে রাখা হয় এবং ok true হবে। অন্যথায়, ok false হয়ে যাবে।
সারসংক্ষেপ
- Insert: map-এ একটি নতুন কী-value পেয়ার ইনসার্ট করতে সরাসরি কী ব্যবহার করে মান অ্যাসাইন করা হয়।
- Delete: map থেকে একটি কী-value পেয়ার মুছে ফেলতে
delete()ফাংশন ব্যবহার করা হয়। - Update: map-এ একটি কী-এর মান আপডেট করতে, আপনি সেই কী-টির জন্য নতুন মান অ্যাসাইন করতে পারেন।
- Map উপস্থিতি চেক: map-এ একটি কী উপস্থিত কিনা তা চেক করতে
value, ok := m[key]ব্যবহার করা হয়।
Go তে Maps ব্যবহারের মাধ্যমে ডেটা দ্রুত অ্যাক্সেস, ইনসার্ট, ডিলিট এবং আপডেট করা সম্ভব, যা কোডের কার্যকারিতা ও মেমরি ব্যবস্থাপনা বাড়ায়।
Read more