Go dengan Contoh: Tipe Data Asosiatif (Maps)

Map adalah tipe data asosiatif di Go. (di bahasa pemrograman lain: hash atau dict).

package main
import "fmt"
func main() {

Untuk membuat map kosong, gunakan make: make(map[tipe-kunci]tipe-nilai).

    m := make(map[string]int)

Atur pasangan kunci/nilai dengan sintaks umum nama[kunci] = nilai

    m["k1"] = 7
    m["k2"] = 13

Mencetak sebuah map dengan fmt.Println akan menunjukkan semua pasangan kunci/nilai.

    fmt.Println("map:", m)

Ambil nilai dari sebuah kunci dengan nama[kunci].

    v1 := m["k1"]
    fmt.Println("v1: ", v1)

len mengembalikan jumlah pasangan kunci/nilai saat dipanggil pada sebuah map.

    fmt.Println("len:", len(m))

delete menghapus pasangan kunci/nilai dari sebuah map.

    delete(m, "k2")
    fmt.Println("map:", m)

Nilai kembalian kedua yang bersifat opsional saat mengambil nilai dari sebuah map, menandakan apabila sebuah kunci ada pada map. Hal ini bisa digunakan untuk menghilangkan ambiguitas antara kunci yang tidak ada dan kunci dengan nilai nol (seperti 0 atau "". Di sini kita tidak perlu nilai itu, jadi kita menghiraukannya dengan penanda kosong _.

    _, prs := m["k2"]
    fmt.Println("prs:", prs)

Kamu juga bisa menyatakan dan memberi nilai awal sebuah map baru dengan satu baris kode.

    n := map[string]int{"foo": 1, "bar": 2}
    fmt.Println("map:", n)
}

Lihat bahwa map muncul dengan bentuk map[k:v k:v] saat dicetak dengan fmt.Println.

$ go run maps.go 
map: map[k1:7 k2:13]
v1:  7
len: 2
map: map[k1:7]
prs: false
map: map[bar:2 foo:1]

Contoh selanjutnya: Perulangan dengan Range (Range).