Heim > Backend-Entwicklung > Golang > Warum wirft Go trotz Variableninitialisierung den Fehler „vorher deklariert und nicht verwendet' aus?

Warum wirft Go trotz Variableninitialisierung den Fehler „vorher deklariert und nicht verwendet' aus?

Mary-Kate Olsen
Freigeben: 2024-10-31 03:37:01
Original
984 Leute haben es durchsucht

Why Does Go Throw

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

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

Ebenso sollte die nächste Zeile lauten:

<code class="go">curr = curr + prev</code>
Nach dem Login kopieren

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage