Ungenutzte Variablen in Go
Bei der Go-Programmierung ist es wichtig, deklarierte Variablen zu verwenden. Wenn Sie eine Variable deklarieren, die im Gültigkeitsbereich des Codes ungenutzt bleibt, kann ein Kompilierungsfehler auftreten, der als „Fehler deklariert und nicht verwendet“ bezeichnet wird. Dieser Fehler weist nicht auf Schattenprobleme hin.
Im angegebenen Codeausschnitt:
package main import ( "fmt" ) func main() { var ( err error dto = make(map[string]interface{}) ) dto[`thing`], err = getThings() fmt.Println(dto[`thing`]) } func getThings() (string, error) { return `the thing`, nil }
Der Fehler tritt aufgrund der nicht verwendeten err-Variablen auf. Obwohl sie deklariert ist, wird ihr beim Aufruf von getThings() nur ein Wert zugewiesen und nicht weiter verwendet.
Laut den FAQ von Go „kann das Vorhandensein einer nicht verwendeten Variablen auf einen Fehler hinweisen.“ Nicht verwendete Variablen können die Kompilierungs- und Erstellungszeiten verlangsamen. Daher erfordert Go die Verwendung aller deklarierten Variablen.
Um den Fehler zu beheben, entfernen Sie die Variablendeklaration „err“ oder weisen Sie sie _ zu:
package main import ( "fmt" ) func main() { var ( _ error dto = make(map[string]interface{}) ) dto[`thing`], _ = getThings() fmt.Println(dto[`thing`]) } func getThings() (string, error) { return `the thing`, nil }
Alternativ können Sie „err“ zur Fehlerprüfung verwenden:
package main import ( "fmt" ) func main() { var ( err error dto = make(map[string]interface{}) ) dto[`thing`], err = getThings() if err != nil { fmt.Println(err) return } fmt.Println(dto[`thing`]) } func getThings() (string, error) { return `the thing`, nil }
Während es zulässig ist, nicht verwendete globale Variablen oder Funktionsargumente zu haben, ist es wichtig, innerhalb von Funktionsbereichen deklarierte Variablen zu verwenden, um Fehler bei der Kompilierung zu vermeiden.
Das obige ist der detaillierte Inhalt vonWarum gibt Go den Fehler „err Declared and Not Used' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!