Maison >développement back-end >Golang >initialisation de la structure globale Golang
l'éditeur php Strawberry vous présentera aujourd'hui l'initialisation de la structure globale dans Golang. Dans Golang, les structures peuvent être utilisées pour organiser et gérer les données, et l'initialisation de la structure globale est un moyen pratique et couramment utilisé. Grâce à l'initialisation globale de la structure, nous pouvons initialiser la structure au démarrage du programme, évitant ainsi les problèmes d'initialisation manuelle à chaque fois que la structure est utilisée. Ci-dessous, nous présenterons en détail les méthodes et précautions spécifiques à l'initialisation de la structure globale pour aider chacun à mieux comprendre et utiliser cette fonction.
Je souhaite déclarer une variable de structure globale appartenant à un certain package et l'initialiser.
J'ai la structure de répertoire suivante :
main ├── symbol | ├── symbol.go | └── comma.go ├── main.go └── go.mod
symbol.go :
package symbol type symbol struct{ name string format string }
virgule.go :
package symbol var comma = symbol{} comma.name = "comma" comma.format = ","
main.go :
package main import "fmt" import "github.com/.../symbol" func main() { s := symbol.Comma fmt.Println(s.Name) }
Quand je l'exécute, il est écrit :
syntax错误:函数体外部的非声明语句
Comment puis-je résoudre ce problème ?
Les déclarations sont le seul type d'instruction autorisé au niveau du package. Déclaration
comma.name = "comma" comma.format = ","
est une déclaration d'affectation. L'affectation n'est pas une déclaration.
Il existe deux façons de résoudre ce problème. La première méthode, et préférée, consiste à utiliser un littéral composé pour initialiser la valeur dans la déclaration de variable.
var comma = symbol{name: "comma", format: ","}
La deuxième méthode consiste à déplacer l'instruction d'affectation vers la fonction init
:
func init() { Comma.Name = "Comma" Comma.Format = "," }
init
Les fonctions sont automatiquement exécutées lors de l'initialisation 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!