Logo marque du langage Go

Série : Langage GO – Tableaux

Les fonctions en langage GO permettent de faire des retours multiples de résultats. C’est que ce billet va présenter.

Définition

Dans quasiment tout les langages il existe cette notion de tableau pour le stockage de données. Le langage GO n’y coupe pas non plus.

Pour faire simple, un tableau est une séquence finis d’éléments d’un même type.

Syntaxe allocation

1 dimension

var <NOM VARIABLE>[<TAILLE>]<TYPE>

n dimensions

var <NOM VARIABLE>[<TAILLE1>][<TAILLE2>]...[<TAILLEn>]<TYPE>

Rappel: En ce qui concerne la visibilité d’une fonction, en ce sens on parle public ou privée. Il suffit pour cela de soit mettre la première lettre en minuscule pour une fonction privée et une majuscule pour une fonction publique.

Remarque : La taille du tableau doit être un entier supérieur ou égal à zéro (même si zéro représentera un tableau avec aucun élément).

Remarque : attention au nombre de dimensions car on peut dépasser l’espace mémoire mais le compilateur vous le fera savoir, ainsi que l’IDE (pour visual code par exemple)

Syntaxe affectation

<NOM VARIABLE>[<INDEX>] = <VALEUR>

Principe

Il faut retenir que lors de l’allocation que :

  • L’allocation des éléments est contiguë ;
  • Le contenu est toujours initialisé
  • Que l’index de départ est 0 ;
  • Le tableau est immuable et donc pour agrandir le tableau il faut en créer un autre.

Exemple

Allocation d’un tableau de 4 chaines de caractères.

package main

import "fmt"

func main() {

	var tableau [4]int

	fmt.Printf("tableau %v", tableau)

        // Résulat : tableau [0 0 0 0]

}
package main

import "fmt"

func main() {

	var tableau [4]int

	tableau[0] = 99
	tableau[3] = 100

	fmt.Printf("tableau %v", tableau)

	// Résulat : tableau [99 0 0 100]
}
package main

import "fmt"

func main() {

	var tableau [4]int

	tableau[0] = 99
	tableau[3] = 100

	fmt.Printf("tableau %v de longueur = %d", tableau, len(tableau))

	// Résulat : tableau [99 0 0 100] de longueur = 4
}
package main

import "fmt"

func main() {

	var vectors [3]struct{ x, y int }

	vectors[1].x = 100
	vectors[1].y = 150

	fmt.Printf("tableau: %v de longueur: %d, de type: %T", vectors, len(vectors), vectors)

	// Résulat : tableau: [{0 0} {100 150} {0 0}] de longueur: 3, de type: [3]struct { x int; y int }
}
package main

import "fmt"

func main() {

	var mat_vect [3][3]struct{ x, y int }

	mat_vect[1][1].x = 100
	mat_vect[1][1].y = 150

	fmt.Printf("tableau: %v de longueur: %d, de type: %T", mat_vect, len(mat_vect), mat_vect)

	// Résulat : tableau: [[{0 0} {0 0} {0 0}] [{0 0} {100 150} {0 0}] [{0 0} {0 0} {0 0}]] de longueur: 3, de type: [3][3]struct { x int; y int }
}

En résumé

Voilà maintenant vous savez :

  • Déclarer un tableau de type quelconque ;
  • Affecter des valeurs.

A lire aussi …

Frédéric Schmidt

Lead Technical Architect.

Ajouer un commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Recent Comments

    %d blogueurs aiment cette page :