Map

Menyimpan pasangan key-value: membuat, membaca, menghapus, dan iterasi.

Part 13 dari 23 ± 30 menit Gratis

Map = kamus

Map menyimpan pasangan key → value dan mengambilnya dengan sangat cepat. Tipenya map[TipeKey]TipeValue.

nilai := map[string]int{
    "budi": 85,
    "sari": 92,
}

Membuat map kosong: m := make(map[string]int). Map yang belum dibuat (var m map[string]int) bernilai nil — membaca aman, menulis menyebabkan panic.

Operasi dasar

nilai["andi"] = 78         // tambah / ubah
fmt.Println(nilai["sari"]) // 92
delete(nilai, "budi")      // hapus
fmt.Println(len(nilai))    // jumlah pasangan

Mengecek apakah key ada

Membaca key yang tidak ada mengembalikan zero value (mis. 0), sehingga kamu tidak bisa membedakan "tidak ada" dari "nilainya 0". Pakai bentuk dua nilai:

v, ok := nilai["dewi"]
if !ok {
    fmt.Println("dewi tidak ada")
}

Ini disebut comma ok idiom.

Iterasi

for nama, skor := range nilai {
    fmt.Println(nama, skor)
}

Urutan iterasi map acak dan sengaja dibuat berbeda tiap kali. Jika butuh urutan, kumpulkan key ke slice lalu sort.Strings.

Key yang boleh dipakai

Tipe yang bisa dibandingkan dengan ==: string, angka, bool, array, struct sederhana. Slice dan map tidak boleh jadi key.

Map berisi slice / struct

kelompok := map[string][]string{
    "A": {"Ani", "Budi"},
}
kelompok["A"] = append(kelompok["A"], "Caca")

Map bukan thread-safe

Menulis ke map dari beberapa goroutine bersamaan menyebabkan crash. Gunakan sync.Mutex (atau sync.Map) — dibahas di bab konkurensi.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X