Map adalah tipe data pada Go berbentuk key-value pair. map mirip seperti slice, hanya saja indeks yang digunakan untuk pengaksesan bisa ditentukan sendiri tipe-nya (indeks tersebut adalah key).
packagemainimport ("fmt")funcmain() {var batch map[string]int batch["adorable"] =20 batch["brilliant"] =10 fmt.Println("Jumlah anggota batch adorable", batch["adorable"]) fmt.Println("Jumlah anggota batch brilliant", batch["brilliant"])}
Pada kode di atas jika dijalankan akan muncuk error ini karena pada map nilai default adalah nil sehingga kita harus membuat inisialisasi nilai default di awal seperti ini:
packagemainimport ("fmt")funcmain() {var batch map[string]int batch =map[string]int{} // Inisialisasi nilai default batch["adorable"] =20 batch["brilliant"] =10 fmt.Println("Jumlah anggota batch adorable", batch["adorable"]) fmt.Println("Jumlah anggota batch brilliant", batch["brilliant"])}
Inisialisasi Nilai map
Kita juga bisa langsung memasukkan nilai pada variabel bertipe map dengan menggunakan literal {} seperti berikut ini:
packagemainimport ("fmt")funcmain() { batch :=map[string]int{"adorable": 20, "brilliant": 10} fmt.Println("Jumlah anggota batch adorable", batch["adorable"]) fmt.Println("Jumlah anggota batch brilliant", batch["brilliant"])}
Looping pada map
Kita bisa menggunakan for - range untuk looping pada map . Cara penerapannya masih sama seperti pada slice, pembedanya data yang dikembalikan di tiap perulangan adalah key dan value, bukan indeks dan elemen.
Dari kode di atas kita lihat bahwa kita menghapus elemen map pada keyadorable sehingga jika kita akses key dari adorable dan isi dari map batch maka akan menghasilkan output seperti berikut ini:
Deteksi Keberadaan Item Dengan Key Tertentu
Ada cara untuk mengetahui apakah dalam sebuah variabel map terdapat item dengan key tertentu atau tidak, yaitu dengan memanfaatkan 2 variabel sebagai penampung nilai kembalian pengaksesan item