Maison > développement back-end > Golang > Pourquoi ne puis-je pas utiliser un appel de fonction pour initialiser une constante dans Go ?

Pourquoi ne puis-je pas utiliser un appel de fonction pour initialiser une constante dans Go ?

Barbara Streisand
Libérer: 2024-12-19 12:37:16
original
842 Les gens l'ont consulté

Why Can't I Use a Function Call to Initialize a Constant in Go?

Initialisation des variables constantes

Lorsque vous tentez d'attribuer un appel de fonction à la constante KILO, vous rencontrez une erreur. En effet, les déclarations de constantes ne peuvent pas contenir d'appels de fonction, car elles doivent être évaluées au moment de la compilation. Les expressions constantes incluent des valeurs littérales, des identifiants constants et certaines fonctions intégrées comme unsafe.Sizeof().

Selon la spécification Go, "Les expressions constantes ne peuvent contenir que des opérandes constants et sont évaluées au moment de la compilation." Ainsi, les fonctions ne peuvent généralement pas être appelées dans des déclarations de constantes.

Pour initialiser la constante KILO, utilisez un littéral entier ou à virgule flottante au lieu d'un appel de fonction :

const Kilo = 1000  // Integer literal
Copier après la connexion

Ou :

const Kilo = 1e3   // Floating-point literal
Copier après la connexion

Vous pouvez également créer une variable au lieu d'une constante si vous devez utiliser une fonction pour calculer le value:

var Kilo = math.Pow10(3)
Copier après la connexion

Notez que certaines fonctions intégrées, comme unsafe.Sizeof(), cap et len, peuvent être utilisées dans des déclarations constantes. Cependant, les appels de fonction qui impliquent l'exécution du runtime, comme math.Pow10(), ne sont pas autorisés.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal