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

initialisation de la structure globale Golang

WBOY
Libérer: 2024-02-12 09:33:08
avant
1318 Les gens l'ont consulté

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
Copier après la connexion

symbol.go :

package symbol

type symbol struct{
    name string
    format string
}
Copier après la connexion

virgule.go :

package symbol

var comma = symbol{}

comma.name = "comma"
comma.format = ","
Copier après la connexion

main.go :

package main
import "fmt"
import "github.com/.../symbol"

func main() {
    s := symbol.Comma
    fmt.Println(s.Name)
}
Copier après la connexion

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 = ","
Copier après la connexion

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: ","}
Copier après la connexion

La deuxième méthode consiste à déplacer l'instruction d'affectation vers la fonction init :

func init() {
    Comma.Name = "Comma"
    Comma.Format = ","
}
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal