Menu
Coddy logo textTech

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)) // 3

Se aggiungiamo elementi alla slice e ne controlliamo la dimensione, otterremo la nuova dimensione:

nums := []int{23, 5, 6, 9, 22}
fmt.Println(len(nums)) // 5

Al contrario, un array ha una dimensione fissa. Per esempio:

nums := [4]int{23}
fmt.Println(len(nums)) // 4

Anche 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à).

challenge icon

Sfida

Facile

Scrivi 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:

  1. Stampa la lunghezza della slice prima di aggiungere gli elementi.
  2. Aggiungi gli elementi alla slice.
  3. 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

Esercitati da solo: Compilatore Go online