Go-তে Key-Value Pair এর সাথে কাজ করা (Maps)
Go প্রোগ্রামিং ভাষায় Maps হল একটি ডেটা স্ট্রাকচার যা Key-Value Pair ধারণ করে। মানে, এখানে একটি Key থাকবে, এবং সেই Key-এর জন্য একটি Value থাকবে। এটি একটি অর্ডারহীন ডেটা স্ট্রাকচার এবং Key এর মাধ্যমে Value অ্যাক্সেস করা হয়।
Maps Go-তে খুবই শক্তিশালী এবং ব্যবহারযোগ্য ডেটা স্ট্রাকচার, বিশেষত যখন আপনি দ্রুত ডেটা খুঁজতে চান বা কিছু ডেটার সাথে যুক্ত ভ্যালু রাখতে চান।
১. Map ডিফাইনেশন
Go তে map ডিফাইন করার জন্য make() ফাংশন অথবা map[] সিনট্যাক্স ব্যবহার করা হয়।
১.১ Map ডিফাইনেশন এবং ইনিশিয়ালাইজেশন
package main
import "fmt"
func main() {
// make() ফাংশন ব্যবহার করে map ডিফাইন করা
m := make(map[string]int)
// Key-Value যোগ করা
m["age"] = 30
m["score"] = 100
fmt.Println(m)
}এখানে, m একটি map যা string টাইপের key এবং int টাইপের value ধারণ করে। make(map[string]int) দিয়ে আমরা একটি নতুন map তৈরি করেছি এবং তারপর সেটিতে key-value পেয়ার যুক্ত করেছি।
আউটপুট:
map[age:30 score:100]১.২ একইভাবে নির্দিষ্ট মান দিয়ে map তৈরি
package main
import "fmt"
func main() {
// key-value দিয়ে map ইনিশিয়ালাইজ করা
m := map[string]int{
"age": 25,
"score": 90,
}
fmt.Println(m)
}এখানে, আমরা একটি map তৈরি করেছি এবং সরাসরি কিছু key-value পেয়ার ইনিশিয়ালাইজ করেছি।
আউটপুট:
map[age:25 score:90]২. Map এ Key-Value Access করা
Map এ নির্দিষ্ট Key এর Value অ্যাক্সেস করতে, আপনি Key ব্যবহার করেন।
২.১ Map থেকে Value এক্সট্র্যাক্ট করা
package main
import "fmt"
func main() {
m := map[string]int{
"age": 25,
"score": 90,
}
// Key দিয়ে Value অ্যাক্সেস করা
fmt.Println("Age:", m["age"]) // আউটপুট: 25
fmt.Println("Score:", m["score"]) // আউটপুট: 90
}এখানে, আমরা m["age"] এবং m["score"] দিয়ে map থেকে মান অ্যাক্সেস করেছি।
২.২ Key-এর মাধ্যমে Value চেক করা
গো-তে, যখন আপনি একটি Key থেকে Value অ্যাক্সেস করেন, তখন এটা zero value রিটার্ন করতে পারে যদি সেই Key-টি না থাকে। এজন্য আপনি একটি দ্বিতীয় মান (value, exists) চেক করতে পারেন।
package main
import "fmt"
func main() {
m := map[string]int{
"age": 25,
"score": 90,
}
// Key চেক করা
if value, ok := m["age"]; ok {
fmt.Println("Found age:", value) // আউটপুট: Found age: 25
} else {
fmt.Println("Key 'age' not found")
}
// Non-existent Key চেক করা
if value, ok := m["height"]; ok {
fmt.Println("Found height:", value)
} else {
fmt.Println("Key 'height' not found") // আউটপুট: Key 'height' not found
}
}এখানে, ok ভেরিয়েবল true হবে যদি Key পাওয়া যায় এবং false হলে Key পাওয়া যাবে না।
৩. Map-এ Value আপডেট করা
আপনি একটি existing Key এর Value পরিবর্তন করতে পারবেন।
package main
import "fmt"
func main() {
m := map[string]int{
"age": 25,
"score": 90,
}
// Key-এর Value আপডেট করা
m["age"] = 30
fmt.Println("Updated map:", m) // আউটপুট: map[age:30 score:90]
}এখানে, "age" Key-এর মান পরিবর্তন করে 30 করা হয়েছে।
৪. Map-এ Key এবং Value Iteration
Go-তে map এর Key এবং Value গুলোর উপর ইটারেট করার জন্য for লুপ ব্যবহার করা হয়।
৪.১ Map এর উপর Loop চালানো
package main
import "fmt"
func main() {
m := map[string]int{
"age": 25,
"score": 90,
"year": 2024,
}
// Map এর Key-Value উপর ইটারেট করা
for key, value := range m {
fmt.Println(key, ":", value)
}
}এখানে, range ব্যবহার করে map এর প্রতিটি Key এবং Value এর উপর ইটারেট করা হচ্ছে।
আউটপুট:
age : 25
score : 90
year : 2024৫. Map-এ Key মুছে ফেলা
Go-তে আপনি delete() ফাংশন ব্যবহার করে একটি Key এবং তার সম্পর্কিত Value মুছে ফেলতে পারেন।
৫.১ Map থেকে Key মুছে ফেলা
package main
import "fmt"
func main() {
m := map[string]int{
"age": 25,
"score": 90,
}
// Key মুছে ফেলা
delete(m, "score")
fmt.Println(m) // আউটপুট: map[age:25]
}এখানে, delete(m, "score") দ্বারা "score" Key এবং তার সম্পর্কিত Value মুছে দেওয়া হয়েছে।
৬. Map এর Capcity এবং Length
Go-তে len() ফাংশন ব্যবহার করে Map এর লেন্থ (অর্থাৎ, মোট Key-Value পেয়ার) পাওয়া যায়। তবে, capacity এর জন্য Go-তে সরাসরি কোনো ফাংশন নেই।
package main
import "fmt"
func main() {
m := map[string]int{
"age": 25,
"score": 90,
}
fmt.Println("Length of map:", len(m)) // আউটপুট: 2
}এখানে, len(m) দ্বারা map এর Key-Value পেয়ার এর সংখ্যা বের করা হয়েছে।
সারসংক্ষেপ
- Maps: Go-তে Maps হল একটি ডেটা স্ট্রাকচার যা Key-Value Pair ধারণ করে। এটি ডেটা দ্রুত অ্যাক্সেস করতে ব্যবহৃত হয়।
- Key-Value Pair: Maps এর Key এর মাধ্যমে সংশ্লিষ্ট Value অ্যাক্সেস করা যায় এবং Value আপডেট করা যায়।
- Operations: Go-তে Maps এর বিভিন্ন অপারেশন যেমন Key-Value অ্যাক্সেস, Value আপডেট, Key মুছে ফেলা, ইটারেশন ইত্যাদি করা যায়।
- Delete:
delete()ফাংশন দ্বারা আপনি Map থেকে একটি Key এবং তার Value মুছে ফেলতে পারেন। - Length: Map-এর লেন্থ বের করতে
len()ফাংশন ব্যবহার করা হয়।
Go-তে Maps ব্যবহার করে আপনি Key-Value Pair ম্যানেজমেন্ট করতে পারবেন এবং ডেটা অ্যাক্সেস ও ম্যানিপুলেশনকে আরও কার্যকরী করতে পারবেন।
Read more