Maison  >  Article  >  développement back-end  >  Pourquoi Go génère-t-il l'erreur « précédent déclaré et non utilisé » malgré l'initialisation de la variable ?

Pourquoi Go génère-t-il l'erreur « précédent déclaré et non utilisé » malgré l'initialisation de la variable ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 03:37:01905parcourir

Why Does Go Throw

Go - Erreur : "prev déclaré et non utilisé", malgré l'initialisation de la variable

En Go, rencontre l'erreur "prev déclaré et non utilisé" used" lorsque les variables apparaissent initialisées peut être déroutant. Examinons un cas spécifique :

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

Le problème réside dans la fonction anonyme interne de fibonacci(). Le code déclare une variable prev, qui est masquée par l'affectation := suivante. Cela crée une nouvelle variable locale qui n'est pas utilisée, déclenchant l'erreur "précédent déclaré et non utilisé".

Résolution :

Pour résoudre ce problème, modifiez le : = affectation à =. Cela attribue la valeur de temp à la variable prev héritée :

<code class="go">prev = temp</code>

De même, la ligne suivante devrait être :

<code class="go">curr = curr + prev</code>

Cela garantit que prev est correctement utilisé et que l'erreur est résolue. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn