AnyCompiler

Maps

Ek map key-value pairs store karta hai, jo map[KeyType]ValueType se declare kiya jaata hai. Map literals aur assignment dono familiar syntax use karte hain, aur ek missing key ko lookup karna panic nahi karta — yeh bas value type ka zero value return kar deta hai.

package main

import "fmt"

func main() {
	scores := map[string]int{"Alice": 95, "Bob": 87}
	scores["Carol"] = 91

	fmt.Println(scores["Alice"])
	fmt.Println(scores["Carol"])
}
Output
95
91

comma-ok idiom

Kyunki ek missing key chupke se ek zero value return karta hai, Go aapko dono cases mein farq karne ke liye ek second return value deta hai: value, ok := m[key], ok ko false set kar deta hai agar key present nahi thi, jisse aap "key genuinely zero tak maps karti hai" ko "key bilkul exist hi nahi karti" se alag kar sakte ho.

package main

import "fmt"

func main() {
	scores := map[string]int{"Alice": 95, "Bob": 87}

	value, ok := scores["Dave"]
	fmt.Println(value, ok)

	value, ok = scores["Alice"]
	fmt.Println(value, ok)
}
Output
0 false
95 true

Aage: structs — related data ko saath mein group karna.

Practice exercise

Ek map ages := map[string]int{} (empty) banao, "Alice" -> 30 insert karo, phir ages["Alice"] print karo.