Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Slice | Array e Slice
Introduzione a Golang

bookSlice

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

index.go

copy
1234
randomNumbers := [] 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

index.go

copy
1
arrayName[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

index.go

copy
12
var 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

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

È possibile anche memorizzare questa porzione estratta dell'array in una variabile, creando così uno slice:

index.go

index.go

copy
123
var 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

index.go

copy
12345678910111213
package 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] }
question mark

Quale sarà l'output del seguente codice?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

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

bookSlice

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

index.go

copy
1234
randomNumbers := [] 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

index.go

copy
1
arrayName[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

index.go

copy
12
var 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

index.go

copy
1
arrayName[startingIndex:endingIndex + 1]

È possibile anche memorizzare questa porzione estratta dell'array in una variabile, creando così uno slice:

index.go

index.go

copy
123
var 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

index.go

copy
12345678910111213
package 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] }
question mark

Quale sarà l'output del seguente codice?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 3
some-alt