Map di Go: Panduan Praktis dengan Contoh
1
min read .
Updated on
map di Go itu lifesaver buat nyimpen data yang bisa diakses pakai kunci. Gini deh, ini kayak kamus (dictionary) atau hash di bahasa lain, tapi idiomatik di Go dan cepat banget buat akses data.
Membuat Map
Menggunakan make
:
personAge := make(map[string]int)
personAge["Alice"] = 30
personAge["Bob"] = 25
fmt.Println(personAge) // map[Alice:30 Bob:25]
Menggunakan literal map:
personAge := map[string]int{"Alice": 30, "Bob": 25}
fmt.Println(personAge)
Mengakses dan Mengubah Elemen
fmt.Println(personAge["Alice"]) // 30
// Ubah
personAge["Alice"] = 31
// Hapus
delete(personAge, "Bob")
Memeriksa Key
age, exists := personAge["Bob"]
if exists {
fmt.Println(age)
} else {
fmt.Println("Bob not found") // Output: Bob not found
}
Iterasi Map
for name, age := range personAge {
fmt.Printf("%s is %d years old\n", name, age)
}
Map di Fungsi
Map itu tipe referensi, jadi modifikasi di fungsi akan memengaruhi map asli.
func updateAge(m map[string]int, name string, newAge int) {
m[name] = newAge
}
updateAge(personAge, "Alice", 32)
fmt.Println(personAge["Alice"]) // 32
Map dengan Struct
Bisa simpan tipe kompleks seperti struct
.
type Person struct {
Age int
Address string
}
people := map[string]Person{
"Alice": {Age: 30, Address: "123 Main St"},
"Bob": {Age: 25, Address: "456 Elm St"},
}
fmt.Println(people["Alice"]) // {30 123 Main St}
Refleksi Singkat
Pada akhirnya, menguasai map bikin kita lebih efisien saat akses data. Biar pun sederhana, fleksibilitasnya tinggi dan cocok buat berbagai skenario.