Menu
Coddy logo textTech

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>.
 

challenge icon

Wyzwanie

Łatwy

Napisz 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

Poćwicz samodzielnie: Kompilator Go online