Menu
Coddy logo textTech

Nuovo slicing

Lezione 6 di 21 del corso Slice e mappe in GoLang di Coddy.

Go offre qualcosa chiamato rislicing, che consiste nell'eseguire un'altra operazione di slicing sulla slice secondaria. Facciamo un esempio per capirlo correttamente:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}

Qui definiamo una slice con 7 elementi. Eseguiamo lo slicing e otteniamo solo i primi 4 elementi su 7:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println(newS)

Questo restituirà una slice di 4 elementi:

[games coffee code play]

Il rislicing è la possibilità di eseguire un'altra operazione di slicing sulla nostra slice newS, proprio così:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
newS2 := newS[2:]
fmt.Println("Reslicing: ", newS2)

E otterremo:

Slicing:  [games coffee code play]
Reslicing:  [code play]

Nota che quando eseguiamo lo slicing, possiamo accedere agli elementi della slice tramite indice. Per esempio:

s := []string{"games", "coffee", "code", "play", "walk", "read", "learn"}
newS := s[0:4]
fmt.Println("Slicing: ", newS)
fmt.Println(newS[2])

In questo esempio, otteniamo l'elemento all'indice 2:

Slicing:  [games coffee code play]
code

Allo stesso modo, possiamo modificare il valore:

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

E l'output dovrebbe essere:

Slicing:  [games coffee code play]
Before Modification : code
After Modification : sleep

Inoltre, allo stesso modo, possiamo aggiungere elementi alla slice:

newS := s[0:4]
fmt.Println("Slicing: ", newS)
newS = append(newS, "sleep")
fmt.Println("After Modification :", newS)

E il risultato sarà:

Slicing:  [games coffee code play]
After Modification : [games coffee code play sleep]
challenge icon

Sfida

Facile

Nel codice fornito, definiamo uno slice di tipo stringa.

  • Crea un altro slice chiamato "fruits" e memorizzaci gli ultimi cinque elementi dello slice fornito.
  • Stampa lo slice "fruits" sullo schermo.
  • Aggiungi due elementi allo slice "fruits": <strong>"pear"</strong> e <strong>"pineapple"</strong>.
  • Stampa lo slice "fruits" aggiornato.

Provalo tu

package main

import "fmt"

func main() {
    // Definisci la Slice
	str:= []string{"apple", "banana", "cherry", "date", "fig", "grape", "kiwi", "lemon", "mango"}
	// Ottieni gli ultimi 5 elementi
	 
	// Stampa la Slice sullo schermo
 
	// Aggiungi due elementi alla slice
 
	// Stampa la slice aggiornata
 

}

Tutte le lezioni di Slice e mappe in GoLang

Esercitati da solo: Compilatore Go online