Tableaux
#
// En Go, un _tableau_ ou _array_ est une séquence
// numérotée d'éléments d'une longueur donnée
package main
import "fmt"
func main() {
// Ici, nous créons un tableau `a` qui contiendra
// exactement 5 `int`. Le type des éléments et la
// longueur font tous les deux partie du type du
// tableau. Par défaut, les valeurs des éléments du
// tableau sont nulles, c'est à dire 0 chez les int
var a [5]int
fmt.Println("emp:", a)
// On peut affecter la valeur à un index particulier
// avec la syntaxe `array[index] = value`.
// On obtient sa valeur avec `array[index]`.
a[4] = 100
fmt.Println("set:", a)
fmt.Println("get:", a[4])
// La fonction `len`, intégrée au langage, renvoie
// la longueur du tableau.
fmt.Println("len:", len(a))
// On peut utiliser cette syntaxe pour déclarer et
// initialiser un tableau en une ligne.
b := [5]int{1, 2, 3, 4, 5}
fmt.Println("dcl:", b)
// Les tableaux sont à une dimension, mais on peut
// les composer pour obtenir des structures de
// données multi-dimensionnelles.
var twoD [2][3]int
for i := 0; i < 2; i++ {
for j := 0; j < 3; j++ {
twoD[i][j] = i + j
}
}
fmt.Println("2d: ", twoD)
}
# A noter que les tableaux apparaissent sous la forme
# `[v1 v2 v3 ...]` lorsqu'on les affiche avec
# `fmt.Println`.
$ go run arrays.go
emp: [0 0 0 0 0]
set: [0 0 0 0 100]
get: 100
len: 5
dcl: [1 2 3 4 5]
2d: [[0 1 2] [1 2 3]]
# En Go, on utilise les _slices_ bien plus souvent que
# les tableaux. C'est ce que nous allons voir maintenant.