package main
import "fmt"
func main() {
// Define a map
user := map[string]int{
"Alice": 30,
"Bob": 25,
}
// Access values
fmt.Println("Alice's age:", user["Alice"]) // 30
// Check if key exists
age, exists := user["Charlie"]
if !exists {
fmt.Println("Charlie not found!") // Will print this
} else {
fmt.Println("Charlie's age:", age)
}
}
๐น Maps use key-value pairs.
๐น Use exists check to avoid accessing missing keys.
package main
import "fmt"
func main() {
user := map[string]int{"Alice": 30, "Bob": 25}
for name, age := range user {
fmt.Printf("%s is %d years old
", name, age)
}
}
๐น Iteration order is random (not sorted).
package main
import (
"fmt"
"sort"
)
func main() {
user := map[string]int{"Alice": 30, "Bob": 25}
// Extract keys & sort them
keys := make([]string, 0, len(user))
for k := range user {
keys = append(keys, k)
}
sort.Strings(keys)
// Iterate in sorted order
for _, k := range keys {
fmt.Printf("%s: %d
", k, user[k])
}
}
๐น Maps are unordered โ Sort keys before iterating.
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
// Access elements
fmt.Println("First:", numbers[0])
fmt.Println("Last:", numbers[len(numbers)-1])
// Append elements
numbers = append(numbers, 6, 7)
fmt.Println("Updated list:", numbers)
}
๐น Slices are dynamic arrays.
๐น Use append() to grow slices.
package main
import "fmt"
func main() {
numbers := []int{1, 2, 3, 4, 5}
for i, num := range numbers {
fmt.Printf("Index %d: Value %d
", i, num)
}
}
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{42, 7, 19, 85, 3}
sort.Ints(nums)
fmt.Println("Sorted:", nums) // [3, 7, 19, 42, 85]
}
package main
import (
"fmt"
"sort"
)
func main() {
words := []string{"banana", "apple", "cherry"}
sort.Strings(words)
fmt.Println("Sorted:", words) // [apple, banana, cherry]
}
๐ Now, letโs move on to algorithms!