Menu
Coddy logo textTech

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]
code

W 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 : sleep

Podobnie 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]
challenge icon

Wyzwanie

Łatwy

W 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

Poćwicz samodzielnie: Kompilator Go online