Heim > Artikel > Backend-Entwicklung > Warum wirft Go trotz Variableninitialisierung den Fehler „vorher deklariert und nicht verwendet“ aus?
Go – Fehler: „vorher deklariert und nicht verwendet“, trotz Variableninitialisierung
In Go tritt der Fehler „vorher deklariert und nicht verwendet“ auf verwendet“ wenn Variablen initialisiert erscheinen, kann rätselhaft sein. Lassen Sie uns einen konkreten Fall untersuchen:
<code class="go">package main import "fmt" func fibonacci() func() int { prev := 0 curr := 1 return func() int { temp := curr curr := curr + prev prev := temp return curr } } func main() { f := fibonacci() for i := 0; i < 10; i++ { fmt.Println(f()) } }</code>
Das Problem liegt in der inneren anonymen Funktion in fibonacci(). Der Code deklariert eine Variable prev, die durch die nachfolgende :=-Zuweisung überschattet wird. Dadurch wird eine neue lokale Variable erstellt, die nicht verwendet wird, was den Fehler „Zuvor deklariert und nicht verwendet“ auslöst.
Lösung:
Um dieses Problem zu lösen, ändern Sie Folgendes: = Zuordnung zu =. Dadurch wird der geerbten Variable prev der Wert von temp zugewiesen:
<code class="go">prev = temp</code>
Ebenso sollte die nächste Zeile lauten:
<code class="go">curr = curr + prev</code>
Dadurch wird sichergestellt, dass prev ordnungsgemäß verwendet wird und der Fehler behoben wird .
Das obige ist der detaillierte Inhalt vonWarum wirft Go trotz Variableninitialisierung den Fehler „vorher deklariert und nicht verwendet“ aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!