Aggiungere un elemento a una slice
Lezione 3 di 21 del corso Slice e mappe in GoLang di Coddy.
Nelle ultime lezioni abbiamo parlato del fatto che la differenza tra una slice e un array sta nella loro dimensione, come risulta evidente quando se ne controlla la lunghezza.
Per esempio, se definiamo una slice in questo modo:
nums := []int{23, 5, 6}La nostra slice ha tre elementi e, controllando la lunghezza con la funzione <strong>len()</strong>, otteniamo 3:
nums := []int{23, 5, 6}
fmt.Println(len(nums)) // 3Se aggiungiamo elementi alla slice e ne controlliamo la dimensione, otterremo la nuova dimensione:
nums := []int{23, 5, 6, 9, 22}
fmt.Println(len(nums)) // 5Al contrario, un array ha una dimensione fissa. Per esempio:
nums := [4]int{23}
fmt.Println(len(nums)) // 4Anche se contiene meno di 4 elementi, la lunghezza rimane fissa.
Per aggiungere elementi a una slice si usa <strong>append</strong>:
books := []string{"Python", "Rust"}
books = append(books, "Golang")
fmt.Println(books)Eseguendo questo codice si ottiene:
[Python Rust Golang]In Golang, le slice includono funzioni integrate e <strong>append()</strong> è una di queste: ci permette di aggiungere nuovi elementi a una slice esistente.
Nota che, a causa della dimensione dinamica delle slice, non possiamo usare l'indice per aggiungere elementi (
<strong>books[2] = "Golang"</strong>non funzionerà).
Sfida
FacileScrivi un programma che acquisisce 3 input dall'utente e li aggiunge alla slice chiamata <strong>coddy</strong>, come definita nel codice fornito. Esegui i seguenti passaggi:
- Stampa la lunghezza della slice prima di aggiungere gli elementi.
- Aggiungi gli elementi alla slice.
- Stampa la slice e la lunghezza aggiornata dopo aver aggiunto gli elementi (su righe diverse).
Provalo tu
package main
import "fmt"
func main() {
// Acquisisci l'input dall'utente. Non modificare questo codice!
var first, second, third string
fmt.Scan(&first)
fmt.Scan(&second)
fmt.Scan(&third)
// Definisci lo slice
coddy := []string {"SQL","Rust","C#","Golang"}
// Stampa la lunghezza
// Aggiungi un elemento allo slice
// Stampa lo slice e la lunghezza aggiornata
}Tutte le lezioni di Slice e mappe in GoLang
1Introduzione
Introduzione2Slice
Slice vs arrayAggiungere un elemento a una sliceSlicingModi di slicingNuovo slicingCapacità della sliceCapacità massimaIterare su una sliceSfida di riepilogo n. 1Esercitati da solo: Compilatore Go online