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
Mary-Kate OlsenOriginal
2024-10-31 03:37:01980Durchsuche

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>

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!

Stellungnahme:
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