Iterasi dan Pengurutan
Tangani urutan map yang acak
Iterasi dan Pengurutan adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 4 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.
Mengiterasi Peta
Gunakan range untuk melakukan perulangan pada peta dan mendapatkan setiap kunci serta nilainya.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2}
for k, v := range m {
fmt.Println(k, v)
}
}Urutan Bersifat Acak
Urutan iterasi peta tidak dijamin. Go sengaja mengacaknya. Menjalankan perulangan yang sama dua kali dapat mencetak kunci dalam urutan yang berbeda.
Mengapa Diacak
Go sengaja mengacak urutan agar pengembang tidak tanpa sengaja bergantung pada urutan tertentu. Kode yang bergantung pada urutan peta adalah masalah yang menunggu untuk terjadi.
Hanya Kunci
Abaikan nilai untuk mengiterasi hanya kunci.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for k := range m {
fmt.Println(k)
}
}Mengumpulkan Kunci
Untuk mendapatkan hasil yang stabil, kumpulkan kunci ke dalam slice terlebih dahulu.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{}
for k := range m {
keys = append(keys, k)
}
fmt.Println("collected", len(keys), "keys")
}Urutkan Kunci
Urutkan kunci yang telah dikumpulkan, lalu iterasikan slice tersebut. Dengan cara ini, keluaran menjadi terurut dan deterministik.
package main
import (
"fmt"
"sort"
)
func main() {
m := map[string]int{"c": 3, "a": 1, "b": 2}
keys := []string{}
for k := range m {
keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
fmt.Println(k, m[k])
}
}Pola Keluaran Terurut
Pola kumpulkan-lalu-urutkan adalah cara standar untuk mencetak peta dalam urutan yang dapat diprediksi. Selalu urutkan kunci ketika urutan keluaran penting.
Mengurutkan Kunci Bilangan Bulat
Gagasan yang sama berlaku untuk kunci numerik dengan sort.Ints.
package main
import (
"fmt"
"sort"
)
func main() {
m := map[int]string{3: "c", 1: "a", 2: "b"}
keys := []int{}
for k := range m {
keys = append(keys, k)
}
sort.Ints(keys)
for _, k := range keys {
fmt.Println(k, m[k])
}
}Mengubah Selama Iterasi
Anda dapat menghapus kunci dengan aman selama perulangan range. Namun, menambahkan kunci selama iterasi memiliki perilaku yang tidak terdefinisi; entri baru mungkin muncul atau mungkin tidak.
package main
import "fmt"
func main() {
m := map[string]int{"a": 1, "b": 2, "c": 3}
for k := range m {
if k == "b" {
delete(m, k)
}
}
fmt.Println(len(m))
}Mengurutkan Berdasarkan Nilai
Untuk mengurutkan berdasarkan nilai, bukan kunci, kumpulkan kunci lalu urutkan dengan perbandingan yang membaca nilai dari peta.
package main
import (
"fmt"
"sort"
)
func main() {
m := map[string]int{"a": 3, "b": 1, "c": 2}
keys := []string{}
for k := range m {
keys = append(keys, k)
}
sort.Slice(keys, func(i, j int) bool {
return m[keys[i]] < m[keys[j]]
})
for _, k := range keys {
fmt.Println(k, m[k])
}
}Jangan Pernah Bergantung pada Urutan
Hal utama yang perlu diingat: jangan pernah menganggap urutan iterasi peta sudah pasti. Jika urutan penting, ekstrak kunci ke dalam slice dan urutkan secara eksplisit.
Pemeriksaan Singkat
Anda perlu mencetak entri peta dalam urutan kunci alfabetis. Apa pendekatan yang benar?
Ringkasan
Iterasi dan pengurutan:
- Urutan
rangepada peta sengaja dibuat acak - Kumpulkan kunci, urutkan, lalu iterasikan untuk mendapatkan keluaran deterministik
- Menghapus selama
rangeaman; menambahkan memiliki perilaku yang tidak terdefinisi
Belajar Go dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Iterasi dan Pengurutan” gratis?
Ya — teks lengkap “Iterasi dan Pengurutan” 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 “Iterasi dan Pengurutan”?
Tangani urutan map yang acak 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 4 dari 4.
Berapa lama pelajaran “Iterasi dan Pengurutan” 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