Bases de Go

Go Slices: append, len and cap

The list type you will use most in Go: grow it with append, cut it with [a:b], and watch out for shared memory.

  • Débutant
  • 3 min de lecture
  • 1 exemple exécutable
Ce que vous allez apprendre
  • append
  • Slicing with [a:b]
  • make, len and cap
numbers[1:4]
30
11
42
13
54
The slice covers indexes 1, 2 and 3.

A growable view of an array

A slice is a view of an array that can grow. It is the list type you will use most in Go. append adds items and returns the updated slice.

numbers[1:4] takes the items at positions 1, 2 and 3. That new slice shares memory with numbers, so changing middle[0] also changes numbers[1]. make creates an empty slice with room for three items, and cap shows that room.

Points clés

  1. append returns the updated slice.
  2. numbers[1:4] has the items at 1, 2 and 3.
  3. A slice shares memory with the slice it was cut from.

Exemple Go exécutable

Go
Exécuter le code →
main.go
package main

import "fmt"

func main() {
	numbers := []int{3, 1, 4}
	numbers = append(numbers, 1, 5)
	fmt.Println(numbers, len(numbers))

	middle := numbers[1:4]
	fmt.Println(middle)

	middle[0] = 100 // a slice shares the array it was cut from
	fmt.Println(numbers)

	squares := make([]int, 0, 3)
	for i := 1; i <= 3; i++ {
		squares = append(squares, i*i)
	}
	fmt.Println(squares, len(squares), cap(squares))

	for index, value := range squares {
		fmt.Println(index, value)
	}
}
Obtenir un bouton Run pour cet exemple Résultat de l'exécution
[3 1 4 1 5] 5
[1 4 1]
[3 100 4 1 5]
[1 4 9] 3 3
0 1
1 4
2 9

S'entraîner

Ouvrez l'exemple dans le compilateur en ligne, modifiez une valeur ou ajoutez une ligne, et devinez la sortie avant de l'exécuter. Cassez ensuite le code exprès et lisez le message du compilateur.

Leçon terminée ?

Marquez-la comme apprise pour suivre votre progression.

Suivante : Maps →

S'entraîner avec un défi

Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.

Tous les défis