Tableaux du langage Go

Le langage Go fournit une structure de données de type tableau.

Un tableau est une séquence d'éléments de données numérotés et de longueur fixe du même type unique, qui peut être n'importe quel type primitif tel que des entiers, des chaînes de caractères ou des types personnalisés.

Par rapport à la déclaration denumber0, number1, ..., number99variables, utilisez la forme de tableaunumbers[0], numbers[1] ..., numbers[99]qui est plus pratique et plus facile à étendre.

Les éléments d'un tableau peuvent être lus (ou modifiés) par index (position). L'index commence à 0, le premier élément a l'index 0, le deuxième a l'index 1, et ainsi de suite.


Déclaration de tableaux

Déclarer un tableau en langage Go nécessite de spécifier le type des éléments et le nombre d'éléments. Le format de syntaxe est le suivant :

var arrayName [size]dataType
où,arrayNameest le nom du tableau,sizeest la taille du tableau,dataTypeest le type de données des éléments du tableau.

Ce qui suit définit un tableau balance de longueur 10 et de type float32 :

var balance [10]float32

Initialisation des tableaux

Ce qui suit illustre l'initialisation d'un tableau :

L'exemple suivant déclare un tableau d'entiers nommé numbers d'une taille de 5. Au moment de la déclaration, chaque élément du tableau est initialisé par défaut en fonction de son type de données. Pour les types entiers, la valeur initiale est 0.

var numbers [5]int

Vous pouvez également utiliser une liste d'initialisation pour initialiser les éléments d'un tableau :

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

Le code ci-dessus déclare un tableau d'entiers de taille 5 et initialise ses éléments à 1, 2, 3, 4 et 5 respectivement.

De plus, vous pouvez également utiliser:=Utiliser la syntaxe de déclaration courte pour déclarer et initialiser un tableau :

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

Le code ci-dessus crée un tableau d'entiers nommé numbers, définit sa taille à 5 et initialise les valeurs de ses éléments.

Remarque :En langage Go, la taille d'un tableau fait partie de son type, donc des tableaux de tailles différentes sont incompatibles. C'est-à-dire que[5]intet[10]intsont des types différents.

Ce qui suit définit un tableau balance de longueur 5 et de type float32, et initialise les éléments du tableau :

var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

Nous pouvons également initialiser rapidement un tableau au moment de la déclaration à l'aide de littéraux :

balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

Si la longueur du tableau est incertaine, vous pouvez utiliser...Au lieu de la longueur du tableau, le compilateur déduira la longueur du tableau automatiquement en fonction du nombre d'éléments :

var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
ou 
balance := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

Si la longueur du tableau est définie, nous pouvons également initialiser des éléments en spécifiant des indices :

//  将索引为 1 和 3 的元素初始化
balance := [5]float32{1:2.0,3:7.0}

Initialisation d'un tableau{}Le nombre d'éléments dans ne peut pas être supérieur au[]nombre dans.

Si vous ignorez[]Si aucune taille de tableau n'est définie dans les nombres, le langage Go définira la taille du tableau en fonction du nombre d'éléments :

 balance[4] = 50.0

L'exemple ci-dessus lit le cinquième élément. Les éléments d'un tableau peuvent être accédés (ou modifiés) par index (position). Les indices commencent à 0, le premier élément étant à l'indice 0, le deuxième à l'indice 1, et ainsi de suite.


Accéder aux éléments d'un tableau

Les éléments d'un tableau peuvent être lus par index (position). Le format est le nom du tableau suivi de crochets, avec la valeur de l'index entre les crochets. Par exemple :

var salary float32 = balance[9]

L'exemple ci-dessus lit la valeur du 10e élément du tableau balance.

Ce qui suit montre un exemple d'opérations complètes sur les tableaux (déclaration, affectation, accès) :

Exemple 1

package main

import "fmt"

func main() {
   var n [10]int /* n est un tableau de longueur 10 */
   var i,j int

   /* initialiser les éléments du tableau n */        
   for i = 0; i < 10; i++ {
      n[i] = i + 100 /* définir l'élément à i + 100 */
   }

   /* Afficher la valeur de chaque élément du tableau */
   for j = 0; j < 10; j++ {
      fmt.Printf("Element[%d] = %d\n", j, n[j] )
   }
}

Le résultat d'exécution de l'exemple ci-dessus est le suivant :

Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109

Exemple 2

package main

import "fmt"

func main() {
   var i,j,k int
   // Déclarer le tableau et l'initialiser rapidement en même temps
   balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

   /* afficher les éléments du tableau */         ...
   for i = 0; i < 5; i++ {
      fmt.Printf("balance[%d] = %f\n", i, balance[i] )
   }
   
   balance2 := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
   /* Afficher la valeur de chaque élément du tableau */
   for j = 0; j < 5; j++ {
      fmt.Printf("balance2[%d] = %f\n", j, balance2[j] )
   }

   // initialiser les éléments avec les indices 1 et 3
   balance3 := [5]float32{1:2.0,3:7.0}  
   for k = 0; k < 5; k++ {
      fmt.Printf("balance3[%d] = %f\n", k, balance3[k] )
   }
}

Le résultat d'exécution de l'exemple ci-dessus est le suivant :

balance[0] = 1000.000000
balance[1] = 2.000000
balance[2] = 3.400000
balance[3] = 7.000000
balance[4] = 50.000000
balance2[0] = 1000.000000
balance2[1] = 2.000000
balance2[2] = 3.400000
balance2[3] = 7.000000
balance2[4] = 50.000000
balance3[0] = 0.000000
balance3[1] = 2.000000
balance3[2] = 0.000000
balance3[3] = 7.000000
balance3[4] = 0.000000

Plus de contenu

Les tableaux sont très importants pour le langage Go. Ci-dessous, nous présenterons plus de contenu sur les tableaux :

content Description
Tableaux multidimensionnels Le langage Go prend en charge les tableaux multidimensionnels. Le tableau multidimensionnel le plus simple est un tableau à deux dimensions.
Passage de tableaux aux fonctions Vous pouvez passer des arguments de tableau à des fonctions
autres extensions