Maison  >  Article  >  développement back-end  >  Pourquoi ne puis-je pas attribuer une valeur à une variable en dehors d’une fonction dans Go ?

Pourquoi ne puis-je pas attribuer une valeur à une variable en dehors d’une fonction dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 07:12:03548parcourir

Why Can't I Assign a Value to a Variable Outside of a Function in Go?

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

En Go, il n'est pas possible de déclarer des variables en dehors des fonctions en utilisant une non-déclaration déclaration. Cette erreur se produit lorsque vous essayez d'attribuer une valeur à une variable non déclarée, comme le montre l'exemple suivant :

test := "This is a test."

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

Solution

Pour déclarer une variable globale- variable accessible dans Go, utilisez le mot-clé var en dehors de la fonction principale. Le nom de la variable doit commencer par une lettre minuscule pour la rendre privée du package (accessible uniquement dans son package).

var test = "This is a test"

Cette méthode vous permet de déclarer une variable en dehors d'une fonction et de modifier sa valeur au sein des fonctions. dans le même package.

Informations supplémentaires

  • La syntaxe de déclaration courte := n'est autorisée que dans les corps de fonction.
  • Variables déclarées avec var peut être de n'importe quel type, y compris les types non primitifs comme les cartes et les structures.
  • Go fournit également la fonction init, qui est appelée avant la fonction principale et peut être utilisée pour l'initialisation du package.

Exemple de code

Voici un exemple de la façon d'utiliser une variable privée du package et de modifier sa valeur :

package apitest

import (
    "fmt"
)

var sessionID string

func main() {
    fmt.Println(sessionID)
    updateSessionID()
    fmt.Println(sessionID)
}

func updateSessionID() {
    sessionID = "NEW_SESSION_ID"
}

Dans cet exemple, l'ID de session La variable est accessible de n'importe où dans le package apitest. Il est initialisé avec une chaîne vide dans la fonction principale et mis à jour dans la fonction updateSessionID.

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