Iterasi pada slice
Pelajaran 9 dari 21 dalam kursus Slice dan Map di Go di Coddy.
Seperti yang kita lakukan pada array, kita dapat melakukan iterasi pada slice menggunakan for loop. Mari buat contoh untuk menunjukkan caranya:
Misalkan kita memiliki slice seperti ini:
str := []string{"Python","Golang","Rust","JavaScript","Haskell"}
for i := 0; i < len(str); i++ {
fmt.Println(i, str[i])
}Di sini kita melakukan iterasi dari 0 hingga panjang slice menggunakan fungsi <strong>len()</strong>, dan kita akan mendapatkan hasil:
0 Python
1 Golang
2 Rust
3 JavaScript
4 HaskellTidak ada yang baru di sini, tetapi mari gunakan kata kunci baru yang disebut <strong>range</strong> untuk melakukan iterasi pada slice. Sintaksnya seperti ini:
for index, value := range str {
fmt.Println(index, value)
}Dalam contoh kita, <strong>range</strong> digunakan untuk melakukan iterasi pada elemen-elemen slice <strong>str</strong>, dengan memberikan indeks dan nilai pada indeks tersebut di setiap iterasi.
Kita akan mendapatkan hasil yang sama seperti sebelumnya:
0 Python
1 Golang
2 Rust
3 JavaScript
4 HaskellJika kita tidak memerlukan indeksnya, kita dapat menghilangkannya dengan menggunakan garis bawah sebagai pengganti nama variabel:
for _, value := range str {
fmt.Println(value)
}
Tantangan
MudahDalam kode yang diberikan, kita mendefinisikan slice berisi bilangan bulat.
- Gunakan kata kunci
<strong>range</strong>untuk mengiterasi slice, lalu periksa setiap bilangan untuk menentukan apakah bilangan tersebut genap - Jika suatu bilangan genap, tambahkan bilangan tersebut ke variabel yang akan menyimpan jumlah bilangan genap
Coba sendiri
package main
import "fmt"
func main() {
// Slice berisi 10 angka. Jangan ubah ini!
numbers := []int{45, 60, 3, 4, 5, 80, 7, 8, 9, 10}
// Inisialisasi variabel untuk menyimpan jumlah bilangan genap
var sum int
// Telusuri setiap elemen dalam slice
// Periksa apakah bilangannya genap
// Jika ya, tambahkan bilangan itu ke jumlahnya
// Tampilkan jumlahnya di layar
fmt.Println("Sum of even numbers:", sum)
}Semua pelajaran di Slice dan Map di Go
Latihan sendiri: Compiler Go online