Go তে map হলো একটা key-value pair data structure — মানে তুমি একটা key দিয়ে ডেটা সংরক্ষণ করো এবং সেই key দিয়েই পরে সেই ডেটা খুঁজে পেতে পারো। এটা অনেকটা Java বা JavaScript এর HashMap / Object এর মতো।
🔹 ১. Map declare করা
var studentMarks map[string]int
👉 এখানে studentMarks হলো map
👉 key এর টাইপ string
👉 value এর টাইপ int
কিন্তু এটা এখনো nil map, মানে এখনো কোনো memory allocate হয়নি।
🔹 ২. Map initialize করা
দুটি সাধারণ উপায় আছে 👇
✅ Using make()
studentMarks := make(map[string]int)
studentMarks["Shakib"] = 95
studentMarks["Rahim"] = 87
fmt.Println(studentMarks)
✅ Using literal
studentMarks := map[string]int{
"Shakib": 95,
"Rahim": 87,
}
🔹 ৩. Value পড়া (Access)
fmt.Println(studentMarks["Shakib"]) // Output: 95
🔹 ৪. Key আছে কিনা চেক করা
Go তে key না থাকলে default value দেয় (যেমন int এর জন্য 0, string এর জন্য "")
তাই check করার সময় “comma ok” pattern ব্যবহার করা হয় 👇
mark, exists := studentMarks["Hasan"]
if exists {
fmt.Println("Found:", mark)
} else {
fmt.Println("Not found")
}
🔹 ৫. Key delete করা
delete(studentMarks, "Rahim")
🔹 ৬. Loop চালানো (Iterate over map)
for name, mark := range studentMarks {
fmt.Printf("%s got %d\n", name, mark)
}
🔹 ৭. Map এর length দেখা
fmt.Println(len(studentMarks))
🔹 ৮. Important notes
- Map unordered — মানে loop চালালে order একইভাবে আসবে না।
- Map reference type — অর্থাৎ, function এ পাঠালে reference যায়, copy না।
🧠 ছোট Example সম্পূর্ণ কোড
package main
import "fmt"
func main() {
studentMarks := map[string]int{
"Shakib": 95,
"Rahim": 87,
}
studentMarks["Hasan"] = 75
fmt.Println("Marks:", studentMarks)
fmt.Println("Shakib's mark:", studentMarks["Shakib"])
mark, exists := studentMarks["Jamal"]
if !exists {
fmt.Println("Jamal not found!")
}
delete(studentMarks, "Rahim")
fmt.Println("After delete:", studentMarks)
for name, mark := range studentMarks {
fmt.Printf("%s => %d\n", name, mark)
}
}
চাওলে আমি পরের ধাপে “nested map” (যেমন map[string]map[string]int) বা “map with struct value” (যেমন map[string]Student) — এইগুলাও খুব সহজভাবে দেখাতে পারি।
তুমি কোনটা চাও পরেরটা?
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d