Ponowne wycinanie
Lekcja 6 z 21 w kursie Slice’y i mapy w Go w Coddy.
Go oferuje coś, co nazywa się ponownym wycinaniem, czyli wykonywaniem kolejnego wycinania podwycinka. Przyjrzyjmy się przykładowi, aby dobrze to zrozumieć:
s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}Tutaj definiujemy wycinek z 7 elementami. Wytnijmy z niego tylko pierwsze 4 elementy:
s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println(newS)Zwróci to wycinek z 4 elementami:
[games coffee code play]Ponowne wycinanie pozwala wykonać kolejne wycinanie naszego wycinka newS, tak jak tutaj:
s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
newS2 := newS[2:]
fmt.Println("Reslicing: ", newS2)Otrzymamy:
Slicing: [games coffee code play]
Reslicing: [code play]Zauważ, że podczas wycinania możemy uzyskać dostęp do elementów wycinka za pomocą indeksu. Na przykład:
s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
fmt.Println(newS[2])W tym przykładzie otrzymujemy element o indeksie 2:
Slicing: [games coffee code play]
codeW ten sam sposób możemy zmienić wartość:
s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
fmt.Println("Before Modification :", newS[2])
newS[2] = "sleep"
fmt.Println("After Modification :", newS[2])Wynik powinien wyglądać tak:
Slicing: [games coffee code play]
Before Modification : code
After Modification : sleepPodobnie możemy dodawać elementy do wycinka:
newS := s[0:4]
fmt.Println("Slicing: ", newS)
newS = append(newS, "sleep")
fmt.Println("After Modification :", newS)Wynik będzie następujący:
Slicing: [games coffee code play]
After Modification : [games coffee code play sleep]Wyzwanie
ŁatwyW podanym kodzie definiujemy wycinek typu string.
- Utwórz kolejny wycinek o nazwie "fruits" i zapisz w nim ostatnie pięć elementów podanego wycinka.
- Wypisz wycinek "fruits" na ekranie.
- Dodaj dwa elementy do wycinka "fruits":
<strong>"pear"</strong>i<strong>"pineapple"</strong>. - Wypisz zaktualizowany wycinek "fruits".
Spróbuj swoich sił
package main
import "fmt"
func main() {
// Zdefiniuj wycinek
str:= []string{"apple", "banana", "cherry", "date", "fig", "grape", "kiwi", "lemon", "mango"}
// Pobierz ostatnie 5 elementów
// Wyświetl wycinek na ekranie
// Dodaj dwa elementy do wycinka
// Wyświetl zaktualizowany wycinek
}Wszystkie lekcje w sekcji Slice’y i mapy w Go
1Wprowadzenie
WprowadzeniePoćwicz samodzielnie: Kompilator Go online