Menu
Coddy logo textTech

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 Haskell

Nie 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 Haskell

Jeśli nie potrzebujemy indeksu, możemy go pominąć, używając podkreślenia zamiast nazwy zmiennej:

for _, value := range str {
   fmt.Println(value)
}

 

challenge icon

Wyzwanie

Łatwy

W 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

Poćwicz samodzielnie: Kompilator Go online