Maison >développement back-end >Golang >initialisation de la structure globale Golang

initialisation de la structure globale Golang

WBOY
WBOYavant
2024-02-12 09:33:081310parcourir

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.

Contenu de la question

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 ?

Solution

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer