Menu
Coddy logo textTech

Capacità massima

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

Nella lezione precedente abbiamo parlato della capacità e abbiamo imparato che, quando eseguiamo uno slicing, la capacità viene determinata dalla posizione iniziale fino alla posizione finale dello slice. Tuttavia, possiamo usare l’operatore o l’espressione di slicing per controllare o limitare la capacità. Vediamo un esempio:

Sappiamo che la sintassi dell’operatore di slicing è questa: <strong>[start:stop]</strong>, ma possiamo aggiungere una terza opzione a questo operatore, ottenendo: <strong>[start:stop:capacity]</strong>. La terza opzione ci consente di impostare la capacità massima dello slice.

Quindi, usando un’espressione di slicing completa, puoi eseguire lo slicing di uno slice e, allo stesso tempo, limitare la capacità dello slice restituito da questa espressione.

Supponiamo di avere uno slice come questo:

numbers := []int{1, 2, 3, 4, 5, 6}

Eseguiamo lo slicing per ottenere 3 elementi:

numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4]

Possiamo rappresentarlo così:


Quindi qui otteniamo 3 elementi e una capacità di 5, proprio come mostra questa immagine.

Ora, se usiamo la capacità nell’operatore di slicing e la impostiamo, per esempio, a 3:

numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4:4]

Pensa alla capacità come alla posizione dell’elemento qui: la impostiamo a 4. Ma tieni presente che la posizione di arresto non può essere maggiore della posizione della capacità .

challenge icon

Sfida

Facile

Nel codice fornito, definiamo una slice denominata coddy con 6 elementi.

  • Esegui un'operazione di slicing per estrarre gli elementi "Tech" e "Learn Golang" dalla slice coddy, assicurandoti che la capacità sia 4.

Provalo tu

package main

import (
	"fmt"
)

func main() {
    // Una slice di 6 elementi 
	coddy := []string{"Coddy","Tech","Learn Golang","Learn JavaScript","C++","C#"}
	// Esegui lo slicing qui 
	 
	// Stampa gli elementi sullo schermo
	fmt.Println("Elements:" ?)
	// Stampa la capacità
	fmt.Println("Capacity:" ?)

}

Tutte le lezioni di Slice e mappe in GoLang

Esercitati da solo: Compilatore Go online