Wycinanie
Lekcja 4 z 21 w kursie Slice’y i mapy w Go w Coddy.
Przyjrzyjmy się bliżej koncepcji wycinania fragmentów i omówmy wyrażenie wycinające. Wycinanie fragmentu oznacza pobranie oryginalnej tablicy lub fragmentu i ograniczenie go. Aby lepiej to zrozumieć, przeanalizujmy kilka przykładów.
Załóżmy, że mamy w Go taki fragment:
arr := []string{"code", "coffee", "tea", "water"}Załóżmy teraz, że chcemy pobrać z tego fragmentu tylko "code" i "coffee". Możemy to zrobić przez wycinanie fragmentu, jak pokazano poniżej:
newArr := arr[0:2]Składnia wycinania fragmentu wygląda następująco: <strong>arr[start:stop]</strong>. Podajemy nazwę fragmentu lub tablicy, którą chcemy ograniczyć, a w nawiasach kwadratowych pozycję początkową, następnie dwukropek, a potem pozycję końcową.
Pozycja początkowa powinna być indeksem elementu we fragmencie, liczonym od zera.
Pozycja końcowa wskazuje pozycję elementu, a nie jego indeks, więc liczenie zaczyna się od 1.
W naszym przykładzie zaczynamy od indeksu 0 i pobieramy 2 elementy, co zapisujemy jako <strong>arr[0:2]</strong>. Jeśli pozycja początkowa wynosi 0, można ją pominąć, uzyskując ten sam wynik:
arr[:2]W ten sposób pobieramy ze fragmentu elementy "code" i "coffee".
Możemy dowolnie ustalać początek i koniec wycinanego fragmentu. Na przykład, jeśli chcemy pobrać ze fragmentu "coffee" i "tea", możemy zrobić to tak:
arr := []string{"code", "coffee", "tea", "water"}
newArr := arr[1:3]
Wyzwanie
ŁatwyW podanym kodzie definiujemy wycinek zawierający 6 elementów typu string. Użyj wycinania, aby pobrać wartości <strong>"apple"</strong> ,<strong>"orange"</strong> i <strong>"banana"</strong> z oryginalnego wycinka i wypisać je na ekranie.
Spróbuj swoich sił
package main
import "fmt"
func main() {
// Wycinek fruits — nie zmieniaj tego!
fruits := []string{"pineapple", "kiwi", "apple", "orange", "banana", "grape", "kiwi"}
// Tworzenie wycinka z fruits
// Wyświetl wycinek na ekranie
}Wszystkie lekcje w sekcji Slice’y i mapy w Go
1Wprowadzenie
WprowadzeniePoćwicz samodzielnie: Kompilator Go online