斐波那契函數中的錯誤:已宣告但未使用的變數
Go 中提供的程式碼嘗試使用閉包計算斐波那契數列。然而,編譯器標記了一個錯誤:「prog.go:13: prevelastedandnotused.」
解釋:
在內部閉包函數中,一個變數名為prev 是使用:= 賦值運算子聲明的。這會在目前作用域中建立一個新變量,但從未使用過它。若要解決此問題,請將 := 替換為 =,將 temp 的值指派給繼承的 prev 變數。
重寫的程式碼:
<code class="go">curr := curr + prev prev = temp</code>
錯誤原因:
Go 中的:= 運算子在目前範圍內建立一個新變量,而= 則為現有變數賦值。使用 := 時,會建立一個新變量,並且舊變數會被有效隱藏,這意味著它不再使用。
注意:
僅當以下情況時才會出現此問題在內部閉包中聲明 prev 變數。外部斐波那契函數中聲明的 prev 變數使用正確。
以上是為什麼斐波那契函數中的“prev”變數被標記為未使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!