ホームページ  >  記事  >  バックエンド開発  >  フィボナッチ関数で「prev」変数に未使用のフラグが付いているのはなぜですか?

フィボナッチ関数で「prev」変数に未使用のフラグが付いているのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 21:33:02901ブラウズ

Why is the `prev` variable flagged as unused in the Fibonacci function?

フィボナッチ関数のエラー: 宣言されているが使用されていない変数

Go で提供されたコードは、クロージャーを使用してフィボナッチ数列を計算しようとします。ただし、コンパイラはエラー フラグを立てます: 「prog.go:13: prev は宣言されており、使用されていません。」

説明:

内部クロージャー関数では、変数という名前の prev は、:= 代入演算子を使用して宣言されます。これにより、現在のスコープに新しい変数が作成されますが、使用されることはありません。この問題を解決するには、:= を = に置き換えて、temp から継承された prev 変数に値を割り当てます。

書き換えられたコード:

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

エラーの理由:

Go の := 演算子は現在のスコープ内に新しい変数を作成しますが、= は既存の変数に値を割り当てます。 := を使用すると、新しい変数が作成され、古い変数は効果的にシャドウされ、もう使用されなくなります。

注:

この問題は、次の場合にのみ発生します。内部クロージャで prev 変数を宣言します。外側のフィボナッチ関数で宣言された prev 変数は正しく使用されています。

以上がフィボナッチ関数で「prev」変数に未使用のフラグが付いているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。