0Pricing
Go Academy · Pelajaran

Bagian Dalam Map

Cara map menyimpan data

Bagian Dalam Map adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.

Apa Itu Peta

Peta menyimpan pasangan kunci-nilai. Setiap kunci dipetakan ke satu nilai, dan pencarian rata-rata berlangsung sangat cepat.

Dalam Go, Anda menulis map[KeyType]ValueType.

package main

import "fmt"

func main() {
	ages := map[string]int{"Ann": 30, "Bob": 25}
	fmt.Println(ages["Ann"])
}

Tabel Hash di Balik Layar

Peta Go diimplementasikan sebagai tabel hash. Fungsi hash mengubah setiap kunci menjadi angka yang menunjuk ke sebuah wadah tempat nilai tersebut disimpan.

Wadah

Peta menyimpan entri di dalam wadah. Setiap wadah menampung beberapa pasangan kunci-nilai. Nilai hash sebuah kunci menentukan wadah yang digunakan, sehingga pencarian rata-rata berlangsung cepat, yaitu O(1).

Membuat dengan make

Anda dapat membuat peta kosong dengan make. Secara opsional, berikan petunjuk ukuran untuk mengalokasikan ruang terlebih dahulu.

package main

import "fmt"

func main() {
	scores := make(map[string]int)
	scores["x"] = 10
	fmt.Println(scores)
}

Peta Nil

Peta yang dideklarasikan tanpa inisialisasi bernilai nil. Anda dapat membaca dari peta nil (Anda akan mendapatkan nilai nol), tetapi penulisan ke dalamnya akan menyebabkan kepanikan. Selalu inisialisasi peta sebelum menulis.

package main

import "fmt"

func main() {
	var m map[string]int
	fmt.Println(m == nil)
	fmt.Println(m["missing"])
}

Menambahkan dan Memperbarui

Penetapan nilai ke sebuah kunci akan menambahkannya jika kunci tersebut baru, atau menimpa nilai yang sudah ada.

package main

import "fmt"

func main() {
	m := map[string]int{"a": 1}
	m["b"] = 2
	m["a"] = 99
	fmt.Println(m)
}

Menghapus Kunci

Fungsi bawaan delete menghapus sebuah kunci. Menghapus kunci yang tidak ada merupakan operasi aman yang tidak melakukan apa pun.

package main

import "fmt"

func main() {
	m := map[string]int{"a": 1, "b": 2}
	delete(m, "a")
	fmt.Println(m)
}

Panjang Peta

len mengembalikan jumlah pasangan kunci-nilai yang saat ini ada di dalam peta.

package main

import "fmt"

func main() {
	m := map[string]int{"a": 1, "b": 2, "c": 3}
	fmt.Println(len(m))
}

Peta Tumbuh Secara Otomatis

Saat Anda menambahkan entri, Go memperbesar tabel di balik layar dan mungkin melakukan hash ulang terhadap kunci ke dalam wadah baru. Hal ini terjadi secara otomatis, sehingga Anda tidak perlu mengelola kapasitas secara manual.

Jenis Kunci yang Diizinkan

Kunci harus dapat dibandingkan: jenis yang dapat digunakan dengan ==. String, angka, boolean, dan struct yang bidang-bidangnya dapat dibandingkan dapat digunakan. Slice dan peta tidak dapat menjadi kunci.

package main

import "fmt"

func main() {
	type Point struct{ X, Y int }
	m := map[Point]string{{1, 2}: "origin-ish"}
	fmt.Println(m[Point{1, 2}])
}

Semantik Referensi

Nilai peta merupakan referensi ke data di balik layar. Meneruskan peta ke suatu fungsi memungkinkan fungsi tersebut mengubah peta yang sama, tanpa memerlukan pointer.

package main

import "fmt"

func addOne(m map[string]int) {
	m["count"]++
}

func main() {
	m := map[string]int{"count": 0}
	addOne(m)
	fmt.Println(m)
}

Pemeriksaan Singkat

Apa yang terjadi jika Anda mencoba menulis sebuah kunci ke peta nil?

Ringkasan

Bagian internal peta:

  • Peta adalah tabel hash yang memiliki wadah
  • Pencarian, penyisipan, dan penghapusan rata-rata O(1)
  • Kunci harus dapat dibandingkan; penulisan ke peta nil menyebabkan kepanikan
  • Peta memiliki semantik referensi

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Bagian Dalam Map” gratis?

Ya — teks lengkap “Bagian Dalam Map” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Bagian Dalam Map”?

Cara map menyimpan data Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Go Academy?

Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Bagian Dalam Map” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?

Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Bagian Dalam Map
  2. Memeriksa Keberadaan
  3. Map sebagai Set
  4. Iterasi dan Pengurutan
← Kembali ke Go Academy