Heim  >  Artikel  >  Backend-Entwicklung  >  Initialisierung der globalen Golang-Struktur

Initialisierung der globalen Golang-Struktur

WBOY
WBOYnach vorne
2024-02-12 09:33:081262Durchsuche

Initialisierung der globalen Golang-Struktur

php-Editor Strawberry wird Ihnen heute die globale Strukturinitialisierung in Golang vorstellen. In Golang können Sie Strukturen zum Organisieren und Verwalten von Daten verwenden. Die globale Strukturinitialisierung ist eine praktische und häufig verwendete Methode. Durch die globale Strukturinitialisierung können wir die Struktur beim Start des Programms initialisieren und so die Mühe einer manuellen Initialisierung bei jeder Verwendung der Struktur vermeiden. Im Folgenden stellen wir die spezifischen Methoden und Vorsichtsmaßnahmen für die globale Strukturinitialisierung im Detail vor, damit jeder diese Funktion besser verstehen und verwenden kann.

Inhalt der Frage

Ich möchte eine globale Strukturvariable deklarieren, die zu einem bestimmten Paket gehört, und sie initialisieren.

Ich habe folgende Verzeichnisstruktur:

main
├── symbol
|   ├── symbol.go
|   └── comma.go
├── main.go
└── go.mod

symbol.go:

package symbol

type symbol struct{
    name string
    format string
}

comma.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)
}

Wenn ich es ausführe, heißt es:

syntax错误:函数体外部的非声明语句

Wie kann ich dieses Problem lösen?

Problemumgehung

Deklarationsanweisungen sind der einzige auf Paketebene zulässige Anweisungstyp. Aussage

comma.name = "comma"
comma.format = ","

ist eine Zuweisungsanweisung. Die Abtretung ist keine Erklärung.

Es gibt zwei Möglichkeiten, dieses Problem zu lösen. Die erste und bevorzugte Methode besteht darin, ein „zusammengesetztes Literal“ zu verwenden, um den Wert in der Variablendeklaration zu initialisieren.

var comma = symbol{name: "comma", format: ","}
Die zweite Methode besteht darin, die Zuweisungsanweisung in die

-Funktion zu verschieben:

func init() {
    Comma.Name = "Comma"
    Comma.Format = ","
}
init

Funktionen werden automatisch ausgeführt, wenn das Paket initialisiert wird.

Das obige ist der detaillierte Inhalt vonInitialisierung der globalen Golang-Struktur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen