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
- Bagian Dalam Map
- Memeriksa Keberadaan
- Map sebagai Set
- Iterasi dan Pengurutan