Dans le code Go fourni, dans la fonction principale, un nom de variable locale est défini, qui masque la constante ou variable au niveau du package avec le même nom. Cela peut prêter à confusion et à un comportement incorrect.
Dans Go, lorsqu'une nouvelle variable est déclarée dans une fonction, elle a priorité sur toute autre variable du même nom définie à un moment donné. niveau supérieur (par exemple, dans une portée au niveau du package). C'est ce qu'on appelle l'observation de variable.
Pour faire référence au nom de la constante ou de la variable au niveau du package dans la fonction principale, nous ne pouvons pas utiliser directement le nom de l'identifiant car il désigne la fonction. -variable de niveau. Au lieu de cela, nous pouvons utiliser l'une des approches suivantes :
const name = "Yosua" func main() { localName := name name := "Jobs" fmt.Println(name) // Jobs fmt.Println(localName) // Yosua }
const name = "Yosua" func getName() string { return name } func main() { name := "Jobs" fmt.Println(name) // Jobs fmt.Println(getName()) // Yosua }
Si une variable au niveau du package est déclarée à l'aide de var au lieu de const, elle peut être masquée et réaffectée dans les fonctions. Dans de tels cas, l'utilisation de l'une des approches ci-dessus garantit que la valeur d'origine est préservée.
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!