Usuń element
Lekcja 14 z 21 w kursie Slice’y i mapy w Go w Coddy.
Do tej pory nauczyliśmy się, jak dodawać elementy do wycinka, kopiować wycinek, porównywać wycinki oraz sprawdzać długość wycinka.
A teraz pytanie: jak usunąć konkretny element z wycinka?
Niestety, nie ma wbudowanej funkcji do tego zadania, ale możemy wykonać tę operację, łącząc to, czego się nauczyliśmy.
Załóżmy, że mamy taki wycinek:
books := []string{"Golang", "JavaScript", "Java", "Python", "PostgreSQL", "TypeScript"}Czy potrafisz wymyślić, co możemy zrobić, jeśli potrzebujemy uzyskać nowy wycinek bez konkretnego elementu, na przykład usuwając „PostgreSQL”?
Możemy tutaj użyć operatorów wycinka, jeśli je pamiętasz:
books := []string{"Golang", "JavaScript", "Java", "Python", "PostgreSQL", "TypeScript"}
fmt.Println(books[:4])
fmt.Println(books[5:])Otrzymamy dwa wycinki:
[Golang JavaScript Java Python]
[TypeScript]W ten sposób udało nam się usunąć element „PostgreSQL”, ale musimy połączyć te wycinki w jeden. Możemy więc użyć funkcji <strong>append</strong>, aby połączyć oba wycinki:
books := []string{"Golang", "JavaScript", "Java", "Python", "PostgreSQL", "TypeScript"}
books = append(books[:4], books[5:]...)
fmt.Println(books)W tym kodzie używamy funkcji <strong>append</strong>, aby dodać drugi wycinek (<strong>books[5:]</strong>) do pierwszej części (<strong>books[:4]</strong>). Zwróć uwagę, że używamy <strong>...</strong>, aby przekształcić drugą część w pojedyncze elementy i dodać je do pierwszej części.
Wynik będzie następujący:
[Golang JavaScript Java Python TypeScript]Udało nam się usunąć element „PostgreSQL” z wycinka <strong>books</strong>.
Wyzwanie
ŁatwyNapisz program, który pobiera dane od użytkownika i usuwa element z wycinka, którego indeks odpowiada liczbie podanej przez użytkownika, aby go usunąć.
Spróbuj swoich sił
package main
import "fmt"
func main() {
// Pobierz dane od użytkownika Nie zmieniaj tego!
var x int
fmt.Scanln(&x)
// Zdefiniuj wycinek Nie zmieniaj tego!
lang := []string{"Rust", "Java", "JavaScript", "Golang", "Haskell", "C#"}
// Usuń element o podanym indeksie
// Wypisz zaktualizowany wycinek
}Wszystkie lekcje w sekcji Slice’y i mapy w Go
1Wprowadzenie
Wprowadzenie3Slice od kuchni
Slice to tablicaSlice z makeKopiowanie slice’aUsuń elementWyzwanie podsumowujące #1Wyzwanie podsumowujące #2Poćwicz samodzielnie: Kompilator Go online