Go - エラー: "prev 宣言されていて使用されていません"、変数の初期化にもかかわらず
Go で、"prev 宣言されていて使用されていない" というエラーが発生しました変数が初期化されているように見える場合、「used」というメッセージが表示されると、困惑することがあります。特定のケースを調べてみましょう:
<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>
問題は、fibonacci() 内の内部匿名関数にあります。コードでは変数 prev を宣言していますが、これは後続の := 代入によってシャドウされます。これにより、使用されていない新しいローカル変数が作成され、「prev Declared and not used」エラーが発生します。
解決策:
この問題を解決するには、以下を変更します。 = への代入。これにより、temp の値が継承された prev 変数に割り当てられます:
<code class="go">prev = temp</code>
同様に、次の行は次のようになります:
<code class="go">curr = curr + prev</code>
これにより、prev が適切に使用され、エラーが解決されます。 .
以上が変数の初期化にもかかわらず、Go が「prev 宣言され、使用されていません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。