Melakukan Iterasi pada Koleksi dengan range
Menggunakan range pada slice, map, dan string
Melakukan Iterasi pada Koleksi dengan range 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.
Apa Itu range?
range adalah bentuk khusus dari perulangan for yang melakukan iterasi pada array, slice, map, string, dan channel. Pada setiap iterasi, bentuk ini mengembalikan indeks (atau kunci) dan sebuah nilai.
Perulangan range pada Irisan
Mengembalikan indeks dan salinan elemen:
package main
import "fmt"
func main() {
fruits := []string{"apple", "banana", "cherry"}
for i, fruit := range fruits {
fmt.Printf("%d: %s\n", i, fruit)
}
}Perulangan range pada Larik
Berfungsi sama seperti irisan. Elemen larik disalin pada setiap iterasi:
package main
import "fmt"
func main() {
nums := [3]int{10, 20, 30}
for _, v := range nums {
fmt.Println(v)
}
}Perulangan range pada Peta
Mengembalikan kunci dan nilai dalam urutan acak:
package main
import "fmt"
func main() {
capitals := map[string]string{
"France": "Paris",
"Japan": "Tokyo",
}
for country, city := range capitals {
fmt.Printf("%s -> %s\n", country, city)
}
}Perulangan range pada Teks
Melakukan iterasi pada titik kode Unicode (rune), bukan byte. Indeksnya adalah posisi byte awal titik kode tersebut:
package main
import "fmt"
func main() {
for i, r := range "héllo" {
fmt.Printf("%d: %c\n", i, r)
}
}Mengabaikan Indeks
Gunakan _ untuk mengabaikan indeks saat Anda hanya memerlukan nilai:
package main
import "fmt"
func main() {
total := 0
for _, v := range []int{1, 2, 3, 4, 5} {
total += v
}
fmt.Println(total) // 15
}Perulangan range Hanya dengan Indeks
Menghilangkan nilai hanya menghasilkan indeks. Berguna untuk perubahan langsung:
package main
import "fmt"
func main() {
s := []int{1, 2, 3}
for i := range s {
s[i] *= 2
}
fmt.Println(s) // [2 4 6]
}Perulangan range pada Kanal
range membaca dari kanal sampai kanal tersebut ditutup:
package main
import "fmt"
func main() {
ch := make(chan int, 3)
ch <- 1; ch <- 2; ch <- 3
close(ch)
for v := range ch {
fmt.Println(v)
}
}Jebakan Variabel Perulangan
Variabel perulangan digunakan kembali pada setiap iterasi—menangkap alamatnya dalam goroutine atau fungsi penutupan adalah bug klasik:
package main
import "fmt"
func main() {
nums := []int{1, 2, 3}
funcs := make([]func(), 3)
for i, v := range nums {
v := v // shadow with a copy
funcs[i] = func() { fmt.Println(v) }
}
for _, f := range funcs { f() } // 1 2 3
}Mengubah Elemen Irisan
Nilai perulangan adalah salinan. Untuk mengubahnya, gunakan indeks:
package main
import "fmt"
func main() {
s := []int{10, 20, 30}
for i := range s {
s[i]++
}
fmt.Println(s) // [11 21 31]
}Pemeriksaan Singkat
Saat melakukan perulangan pada teks, tipe apa yang dimiliki variabel nilai?
Ringkasan: range
Hal-hal penting:
rangedapat digunakan pada irisan, larik, peta, teks, dan kanal- Mengembalikan (indeks, nilai)—salah satunya dapat diabaikan dengan
_ - Nilai perulangan adalah salinan—ubah melalui indeks
- Teks menghasilkan titik kode Unicode, bukan byte
- Urutan iterasi peta bersifat acak
Latihan
Gunakan range untuk menghitung jumlah semua nilai dalam map[string]int, lalu cetak setiap entri dan totalnya.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Melakukan Iterasi pada Koleksi dengan range” gratis?
Ya — teks lengkap “Melakukan Iterasi pada Koleksi dengan range” 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 “Melakukan Iterasi pada Koleksi dengan range”?
Menggunakan range pada slice, map, dan string 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 “Melakukan Iterasi pada Koleksi dengan range” 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
- Array: Koleksi dengan Panjang Tetap
- Slice: Daftar Dinamis
- Map: Penyimpanan Kunci-Nilai
- Melakukan Iterasi pada Koleksi dengan range