Tableau constant dans Go

Jay Singh 30 janvier 2023
  1. Vérifier Constant Array à l’aide de la fonction const dans Go
  2. Déclarer un tableau constant à l’aide de l’opérateur [...] dans Go
Tableau constant dans Go

Les développeurs Go sont raisonnablement aptes à utiliser des constantes globales au lieu de variables globales pour la configuration. Cependant, nous rencontrons un problème lors de la construction d’une version constante de certains des types les plus compliqués.

Nous ne pouvons pas utiliser le compilateur Go pour créer un tableau, une carte ou des constantes de tranche.

Les constantes en Go sont précisément cela : des constantes. Même lorsqu’ils sont spécifiés comme variables locales dans les fonctions, ils sont construits au moment de la compilation et ne peuvent être que des entiers, des caractères (runes), des chaînes ou des booléens.

En raison de la contrainte de temps de compilation, les expressions qui les définissent doivent être des expressions constantes que le compilateur peut évaluer.

Cet article traite des autres méthodes de création d’un tableau constant.

Vérifier Constant Array à l’aide de la fonction const dans Go

Les tableaux et tranches constants ne sont pas pris en charge dans Go. En effet, dans Go, des valeurs constantes sont générées au moment de la construction.

Au moment de l’exécution, les tableaux ou les tranches sont toujours évalués. Par conséquent, le programme suivant générerait une erreur de compilation.

package main

import "fmt"

func main() {
    const a = [1]int{1}
    fmt.Println(const a)
}

Production:

const initializer [1]int literal is not a constant

Déclarer un tableau constant à l’aide de l’opérateur [...] dans Go

L’utilisation de [...] au lieu de [] garantit que vous obtenez un tableau (de taille fixe) plutôt qu’une tranche. En conséquence, les valeurs ne sont pas fixes, mais la taille.

package main

import "fmt"

func main() {
    a := [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    fmt.Println(a)
}

Production:

[1 2 3 4 5 6 7 8 9]

Article connexe - Go Array