Maison >développement back-end >Golang >Pourquoi ne puis-je pas utiliser la déclaration de variable courte `:=` en dehors d'une fonction dans Go ?

Pourquoi ne puis-je pas utiliser la déclaration de variable courte `:=` en dehors d'une fonction dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-12 17:53:02806parcourir

Why Can't I Use `:=` Short Variable Declaration Outside of a Function in Go?

Comprendre "<= : problème de déclaration de variable courte

Dans Go, la syntaxe de déclaration de variable &= courte est généralement utilisée pour déclarer et initialiser les variables dans les corps de fonction. Cependant, tenter d'utiliser cette syntaxe en dehors d'une fonction peut entraîner l'erreur de compilation "déclaration attendue, trouvée 'IDENT'. item."

Cause de l'erreur

Le message d'erreur indique que le compilateur attendait une déclaration (telle que var) mais a rencontré l'élément IDENT (qui représente un identifiant ) à la place. Dans le code fourni, la ligne :

item := &memcache.Item {
    Key:   "lyric",
    Value: []byte("Oh, give me a home"),
}

essaye de déclarer et d'initialiser la variable item en utilisant la syntaxe &= en dehors d'une fonction, ce qui n'est pas le cas. autorisé.

Résolution

Pour résoudre cette erreur, vous pouvez effectuer l'une des opérations suivantes :

  1. Déclarer la variable dans une fonction : Si vous souhaitez utiliser la syntaxe &=, déplacez la déclaration de variable à l'intérieur d'une fonction, telle que as :
func MyFunction() {
    item := &memcache.Item {
        Key:   "lyric",
        Value: []byte("Oh, give me a home"),
    }

    // Do something with item
}
  1. Déclarez la variable globalement : Si vous souhaitez utiliser la variable en dehors de toute fonction (globalement), déclarez-la à l'aide du mot-clé var :
var item = &memcache.Item {
    Key:   "lyric",
    Value: []byte("Oh, give me a home"),
}

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