Maison >développement back-end >Golang >Pourquoi ne puis-je pas déclarer une variable en dehors d'une fonction dans Go ?

Pourquoi ne puis-je pas déclarer une variable en dehors d'une fonction dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 20:00:15940parcourir

Why Can't I Declare a Variable Outside a Function in Go?

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

En Go, une déclaration de non-déclaration en dehors du corps d'une fonction déclenche une erreur. Ceci est observé dans l'extrait de code :

package apitest

import (
    "fmt"
)

test := "This is a test."

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

Ce code tente de déclarer une variable en dehors de la fonction main() et de lui attribuer une valeur. Cependant, Go n'autorise pas les déclarations de non-déclaration en dehors des corps de fonction.

Approche idiomatique

La méthode idiomatique Go pour déclarer une variable accessible de n'importe où dans un package mais pas nécessairement une constante n'est :

var test = "This is a test"
  • L'utilisation du mot-clé var déclare une variable nommée test.
  • Le "t" minuscule indique que la variable n'est visible qu'au sein du package (non exporté).
  • L'opérateur d'affectation = initialise la variable avec la valeur "Ceci est un test".

Caractéristiques variables

Le test variable :

  • Est accessible de n'importe où dans le package apitest.
  • Peut être réaffecté, le rendant modifiable.

Notes supplémentaires

  • Au lieu de var test = "Ceci est un test", vous pouvez écrire var test string = "Ceci est un test", mais il n'est pas considéré comme un Go idiomatique.
  • Go fournit également la fonction init pour les initialisations de packages complexes ou la configuration de l'état du package. Init est appelé avant l'exécution principale.

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