Maison >développement back-end >Golang >Comment puis-je déclarer des constantes Go avec des expressions hors compilation ?

Comment puis-je déclarer des constantes Go avec des expressions hors compilation ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-08 09:36:12462parcourir

How Can I Declare Go Constants with Non-Compile-Time Expressions?

Déclaration de variables Const avec des expressions hors compilation

Dans Go, les variables const doivent représenter des valeurs qui peuvent être évaluées au moment de la compilation. Par conséquent, les tentatives d'initialisation de variables const à l'aide d'appels de fonction rencontreront des erreurs. En effet, les fonctions sont exécutées au moment de l'exécution, pas au moment de la compilation.

Le message d'erreur que vous avez reçu, "const initializer math.Pow10(3) n'est pas une constante", indique que la fonction math.Pow10(3) utilisé pour initialiser KILO ne peut pas être évalué au moment de la compilation.

Solution de contournement : utilisez le mode littéral Valeurs

Pour déclarer des variables const avec des expressions non liées à la compilation, vous devez plutôt utiliser des valeurs littérales. Par exemple, vous pouvez utiliser un littéral entier :

const Kilo = 1000

Ou un littéral à virgule flottante :

const Kilo = 1e3

Utilisation de variables

Si vous avez vraiment besoin d'utiliser une fonction pour calculer une valeur pour une constante, vous ne pouvez pas la stocker dans une variable const. Au lieu de cela, déclarez-la comme une variable régulière :

var Kilo = math.Pow10(3)

Cela permet à l'appel de fonction d'être exécuté au moment de l'exécution.

Syntaxe de déclaration de constante alternative

Pour une introduction détaillée aux constantes Go, consultez l'article de blog « Constantes ». De plus, vous pouvez explorer la syntaxe compacte pour déclarer des puissances de 10 comme constantes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn