Nicht-Deklarationsanweisung außerhalb des Funktionskörpers in Go
In Go führt die Deklaration einer Variablen außerhalb eines Funktionskörpers normalerweise zum „Nicht-Deklarieren“. Fehler „-declaration-Anweisung außerhalb des Funktionskörpers“. Dies liegt daran, dass Go Scoping-Regeln strikt durchsetzt und erfordert, dass Variablen innerhalb des entsprechenden Blocks (z. B. innerhalb einer Funktion) deklariert werden.
Idiomatische globale Variablendeklaration
Zu erstellen Eine global zugängliche Variable, die veränderbar, aber keine Konstante ist. Die Syntax lautet:
var test = "This is a test"
Nach dem Login kopieren
- Die Variable Das Schlüsselwort wird für die Variablendeklaration verwendet.
- Der Name der Variablen (in diesem Fall Test) sollte mit einem Kleinbuchstaben beginnen, um ihre Sichtbarkeit innerhalb des Pakets (nicht exportiert) anzuzeigen.
- Das =-Zeichen weist dem einen Wert zu Variable.
Beispiel:
package apitest
import (
"fmt"
)
var test = "This is a test" // Globally accessible variable
func main() {
fmt.Println(test)
test = "Another value"
fmt.Println(test)
}
Nach dem Login kopieren
Erweiterte Erklärung
-
Variableninitialisierung in Funktionen: Innerhalb von Funktionen können Sie eine Variable deklarieren und ihr später mithilfe von einen Wert zuweisen := Operator. Allerdings ist := nicht für globale Variablendeklarationen gültig.
-
Typinferenz: Go unterstützt Typinferenz, bei der der Compiler den Typ einer Variablen anhand ihres Anfangswerts bestimmen kann.
-
Variablen auf Paketebene ändern:Variablen auf Paketebene, einschließlich global zugänglicher Variablen, können innerhalb von Funktionen unter Verwendung desselben Variablennamens geändert werden (z. B. changeTest(newVal) im bereitgestellten Code-Snippet).
-
Init-Funktion: Für die komplexe Paketinitialisierung stellt Go die Init-Funktion zur Verfügung, die automatisch vor main() ausgeführt wird. Es kann verwendet werden, um Anfangszustände für das Paket einzurichten.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Go die Fehlermeldung „Non-Declaration Statement Outside Function Body'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!