 Slice
Slice
Le slice sono simili agli array, ma possiedono lunghezze dinamiche, rendendole un'alternativa più flessibile agli array.
Per creare una slice, si utilizza la stessa sintassi degli array, ma in questo caso si omette la dimensione.
Creazione di una slice utilizzando la parola chiave var:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Creazione di una slice utilizzando l'operatore :=:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
È possibile aggiungere ulteriori elementi a una slice utilizzando la funzione append. La funzione append restituisce una nuova slice con gli elementi aggiunti, che può essere poi assegnata alla variabile della slice originale. Questo sarà più chiaro con un esempio. La sintassi di base della funzione append è la seguente:
append(originalSlice, newElement1, newElement2, …)
Il seguente codice mostra l'utilizzo della funzione append:
index.go
1234randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]
Allo stesso modo in cui è possibile accedere agli elementi di un array, è anche possibile fare riferimento a porzioni di un array utilizzando la seguente sintassi:
index.go
1arrayName[startIndex:endIndex + 1]
Verranno estratti tutti gli elementi dall'startingIndex all'endingIndex. Si noti che è necessario fornire endingIndex + 1. Questo sarà più chiaro con un esempio. Ad esempio:
index.go
12var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]
Estrae gli elementi dagli indici 4 a 9, includendo l'elemento all'indice 4 ed escludendo l'elemento all'indice 9, come espresso nella sintassi:
index.go
1arrayName[startingIndex:endingIndex + 1]
È possibile anche memorizzare questa porzione estratta dell'array in una variabile, creando così uno slice:
index.go
123var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]
È importante notare che tale slice fa riferimento alla porzione dell'array da cui è stato creato. Di conseguenza, qualsiasi modifica apportata a quello slice influenzerà anche l'array originale:
index.go
12345678910111213package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you show an example of how to use the append function with slices?
How do I access or modify elements in a slice?
What happens if I append elements to a slice created from an array?
Awesome!
Completion rate improved to 1.96 Slice
Slice
Scorri per mostrare il menu
Le slice sono simili agli array, ma possiedono lunghezze dinamiche, rendendole un'alternativa più flessibile agli array.
Per creare una slice, si utilizza la stessa sintassi degli array, ma in questo caso si omette la dimensione.
Creazione di una slice utilizzando la parola chiave var:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
Creazione di una slice utilizzando l'operatore :=:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
È possibile aggiungere ulteriori elementi a una slice utilizzando la funzione append. La funzione append restituisce una nuova slice con gli elementi aggiunti, che può essere poi assegnata alla variabile della slice originale. Questo sarà più chiaro con un esempio. La sintassi di base della funzione append è la seguente:
append(originalSlice, newElement1, newElement2, …)
Il seguente codice mostra l'utilizzo della funzione append:
index.go
1234randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]
Allo stesso modo in cui è possibile accedere agli elementi di un array, è anche possibile fare riferimento a porzioni di un array utilizzando la seguente sintassi:
index.go
1arrayName[startIndex:endIndex + 1]
Verranno estratti tutti gli elementi dall'startingIndex all'endingIndex. Si noti che è necessario fornire endingIndex + 1. Questo sarà più chiaro con un esempio. Ad esempio:
index.go
12var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]
Estrae gli elementi dagli indici 4 a 9, includendo l'elemento all'indice 4 ed escludendo l'elemento all'indice 9, come espresso nella sintassi:
index.go
1arrayName[startingIndex:endingIndex + 1]
È possibile anche memorizzare questa porzione estratta dell'array in una variabile, creando così uno slice:
index.go
123var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]
È importante notare che tale slice fa riferimento alla porzione dell'array da cui è stato creato. Di conseguenza, qualsiasi modifica apportata a quello slice influenzerà anche l'array originale:
index.go
12345678910111213package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
Grazie per i tuoi commenti!