Iterowanie po wycinku
Lekcja 9 z 21 w kursie Slice’y i mapy w Go w Coddy.
Podobnie jak w przypadku tablic, możemy iterować po wycinku za pomocą pętli for. Przygotujmy przykład, który to zademonstruje:
Załóżmy, że mamy taki wycinek:
str := []string{"Python","Golang","Rust","JavaScript","Haskell"}
for i := 0; i < len(str); i++ {
fmt.Println(i, str[i])
}Tutaj iterujemy od 0 do długości wycinka za pomocą funkcji <strong>len()</strong> i otrzymamy wynik:
0 Python
1 Golang
2 Rust
3 JavaScript
4 HaskellNie ma tu dla nas nic nowego, ale użyjmy nowego słowa kluczowego o nazwie <strong>range</strong>, które pozwoli nam iterować po wycinku. Składnia powinna wyglądać tak:
for index, value := range str {
fmt.Println(index, value)
}W naszym przykładzie <strong>range</strong> służy do iterowania po elementach wycinka <strong>str</strong>, udostępniając w każdej iteracji zarówno indeks, jak i wartość znajdującą się pod tym indeksem.
Powinniśmy otrzymać taki sam wynik jak wcześniej:
0 Python
1 Golang
2 Rust
3 JavaScript
4 HaskellJeśli nie potrzebujemy indeksu, możemy go pominąć, używając podkreślenia zamiast nazwy zmiennej:
for _, value := range str {
fmt.Println(value)
}
Wyzwanie
ŁatwyW podanym kodzie definiujemy tablicę liczb całkowitych.
- Używając słowa kluczowego
<strong>range</strong>do iterowania po tablicy, sprawdź każdą liczbę, aby ustalić, czy jest parzysta - Jeśli liczba jest parzysta, dodaj ją do zmiennej, która będzie przechowywać sumę liczb parzystych
Spróbuj swoich sił
package main
import "fmt"
func main() {
// Wycinek zawierający 10 liczb. Nie zmieniaj tego!
numbers := []int{45, 60, 3, 4, 5, 80, 7, 8, 9, 10}
// Zainicjalizuj zmienną do przechowywania sumy liczb parzystych
var sum int
// Przejdź przez wycinek
// Sprawdź, czy liczba jest parzysta
// Jeśli tak, dodaj ją do sumy
// Wyświetl sumę na ekranie
fmt.Println("Sum of even numbers:", sum)
}Wszystkie lekcje w sekcji Slice’y i mapy w Go
1Wprowadzenie
WprowadzeniePoćwicz samodzielnie: Kompilator Go online