08 - Tableaux-Golang
08 - Tableaux-Golang
08 - Tableaux-Golang
PROGRAMMATION GO
Pourquoi les tableaux
Imaginez que vous avez besoin de déclarer 100 variables de type int, est-ce que vous
La réponse est NON. Ça sera long et fastidieux, rappelez vous aussi que vous êtes un
bon flemmard. Donc impossible pour vous de passer votre temps à déclarer
plusieurs variables !
La solution dans ce cas c'est de créer un tableau de type int. Un tableau (array en
anglais) est une structure de données qui permet de stocker une collection
Dans ce chapitre nous allons voir que des tableaux statiques, c'est-à-dire des
tableaux dont la taille est connue pendant la déclaration, nous verrons les tableaux
tableau est capable de stocker suivit du type de variable qu'il peut supporter.
Revenons à notre exemple où il fallait déclarer 100 variables de type int, en tableau
On peut déclarer n'importe quel type de tableau (int, float64 etc ...) et les variables
dans votre tableau auront la même valeur par défaut que d'habitude.
Exemple :
package main
import (
"fmt"
)
func main() {
var tableauInt [10]int
var tableauFloat [10]float32
var tableauString [10]string
var tableauBool [10]bool
fmt.Println("Valeur par défaut de la variable tableauInt :", tableauInt)
fmt.Println("Valeur par défaut de la variable tableauFloat :", tableauFloat)
fmt.Println("Valeur par défaut de la variable tableauString :", tableauString)
fmt.Println("Valeur par défaut de la variable tableauBool :", tableauBool)
}
Résultat :
Vous pouvez aussi surcharger les valeurs par défaut de votre tableau grâce à des
accolades.
import (
"fmt"
)
func main() {
var tableau1 = [5]int{1, 2, 3, 4, 5}
fmt.Println("la taille de mon tableau1 :", len(tableau1))
fmt.Println("les valeurs de mon tableau1 :", tableau1)
}
Information
Résultat :
les variables dans votre tableau sont accessibles depuis leur index (numéro de la
case).
Attention
import (
"fmt"
)
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanc
Résultat :
jours[0] = lundi
jours[1] = mardi
jours[2] = mercredi
jours[3] = jeudi
jours[4] = vendredi
jours[5] = samedi
jours[6] = dimanche
package main
import (
"fmt"
)
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanc
Erreur :
Sauf que ça ne fonctionne pas car votre compilateur vous explique que vous être
hors limites de votre tableau, l'index que vous avez rentré est non valide. Rappelez-
vous que le premier index est toujours égal à 0, il faut donc prendre en considération
le 0 quand vous calculez la taille de votre tableau, ici la valeur du dernier index est
égale à 6 et non à 7.
package main
import (
"fmt"
)
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanc
Résultat :
Vous pouvez aussi parcourir la totalité de vos variables grâce à la boucle for en
package main
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"}
Résultat :
Il est concevable aussi d'utiliser une boucle for classique en récupérant la taille du
package main
import (
"fmt"
)
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"}
Résultat :
package main
import (
"fmt"
)
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"}
fmt.Println(jours[:]) // on récupère tous les éléments
}
Résultat :
package main
import (
"fmt"
)
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanc
fmt.Println(jours[:3]) // trois premiers éléments
Résultat :
package main
import (
"fmt"
)
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanc
fmt.Println(jours[3:])
}
Résultat :
package main
import (
"fmt"
)
func main() {
var jours = [7]string{"lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanc
fmt.Println(jours[1:3])
}
Résultat :
[mardi mercredi]
Exemple :
package main
import "fmt"
func main() {
var jours = [5]string{"Hatim", "Robert", "Inconnu", "Ahmed", "Inconnu"}
jours = replaceByHatim(jours)
fmt.Println(jours)
}
/*
J'utilise une fonction pour vous montrer qu'il est
possible de prendre en paramètre un tableau
mais aussi de retourner un tableau dans une fonction
*/
func replaceByHatim(jours [5]string) [5]string {
for i, jour := range jours {
if jour == "Inconnu" {
jours[i] = "Hatim" // Remplacer "Inconnu" par "Hatim"
}
}
return jours
}
Résultat :
Un tableau à deux dimensions n'est rien d'autre qu'un tableau qui contient d'autres
principal.
Un tableau à deux dimensions peut par exemple être utilisé pour la construction
Exemple :
package main
import "fmt"
func main() {
const (
maxLigne int = 3 // 3 sous tableaux
maxColonne int = 4 // 4 éléments pour chaque sous tableau
)
fmt.Println(tableau)
}
[[0 0 0 0] [0 0 0 0] [0 0 0 0]]
tableau principal (ex : s'il est égal à 0 alors on récupère le premier tableau du
tableau principal).
package main
import "fmt"
func main() {
const (
maxLigne int = 3
maxColonne int = 3
)
fmt.Println(doubleTableau)
fmt.Println("----------------------")
chaine := "Hello"
fmt.Println(chaine)
}
Résultat :
[[0 0 0] [0 0 0] [0 0 0]]