Initialisierung der globalen Golang-Struktur

WBOY
Freigeben: 2024-02-12 09:33:08
nach vorne
1261 Leute haben es durchsucht

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
Nach dem Login kopieren

symbol.go:

package symbol

type symbol struct{
    name string
    format string
}
Nach dem Login kopieren

comma.go:

package symbol

var comma = symbol{}

comma.name = "comma"
comma.format = ","
Nach dem Login kopieren

main.go:

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

func main() {
    s := symbol.Comma
    fmt.Println(s.Name)
}
Nach dem Login kopieren

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 = ","
Nach dem Login kopieren

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.

Die zweite Methode besteht darin, die Zuweisungsanweisung in die

-Funktion zu verschieben:

func init() {
    Comma.Name = "Comma"
    Comma.Format = ","
}
Nach dem Login kopieren
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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!