Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que j'obtiens l'erreur « Déclaration de non-déclaration en dehors du corps de la fonction » dans Go ?

Pourquoi est-ce que j'obtiens l'erreur « Déclaration de non-déclaration en dehors du corps de la fonction » dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-13 10:41:02927parcourir

Why Do I Get

Déclaration de non-déclaration en dehors du corps de fonction en Go

En Go, déclarer une variable en dehors du corps d'une fonction conduit généralement au "non -erreur de déclaration en dehors du corps de la fonction. Cela se produit parce que Go applique strictement les règles de portée, exigeant que les variables soient déclarées dans le bloc approprié (par exemple, à l'intérieur d'une fonction).

Déclaration de variable globale idiomatique

Pour créer une variable globalement accessible qui est modifiable mais pas constante, la syntaxe est :

var test = "This is a test"
  • Le mot-clé var est utilisé pour déclaration de variable.
  • Le nom de la variable (test dans ce cas) doit commencer par une lettre minuscule pour indiquer sa visibilité au sein du package (non exporté).
  • Le signe = attribue une valeur à le variable.

Exemple :

package apitest

import (
    "fmt"
)

var test = "This is a test" // Globally accessible variable

func main() {
    fmt.Println(test)
    test = "Another value"
    fmt.Println(test)
}

Explication étendue

  • Initialisation de la variable dans Fonctions : À l'intérieur des fonctions, vous pouvez déclarer une variable et lui attribuer une valeur ultérieurement en utilisant le := opérateur. Cependant, := n'est pas valide pour les déclarations de variables globales.
  • Inférence de type : Go prend en charge l'inférence de type, où le compilateur peut déterminer le type d'une variable en fonction de sa valeur initiale.
  • Modification des variables au niveau du package : Les variables au niveau du package, y compris les variables accessibles globalement, peuvent être modifiées à partir des fonctions en utilisant le même nom de variable. (par exemple, changeTest(newVal) dans l'extrait de code fourni).
  • Fonction Init : Pour l'initialisation de packages complexes, Go fournit la fonction init, qui est automatiquement exécutée avant main(). Il peut être utilisé pour configurer les états initiaux du package.

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