Rumah > Artikel > pembangunan bahagian belakang > Mengapa pembolehubah `sebelumnya` dibenderakan sebagai tidak digunakan dalam fungsi Fibonacci?
Ralat dalam Fungsi Fibonacci: Pembolehubah Diisytiharkan tetapi Tidak Digunakan
Kod yang disediakan dalam Go cuba mengira jujukan Fibonacci menggunakan penutupan. Walau bagaimanapun, pengkompil membenderakan ralat: "prog.go:13: prev declared and not used."
Penjelasan:
Dalam fungsi penutupan dalaman, pembolehubah bernama prev diisytiharkan menggunakan pengendali tugasan :=. Ini mencipta pembolehubah baharu dalam skop semasa, tetapi ia tidak pernah digunakan. Untuk membetulkan isu ini, gantikan := dengan = untuk menetapkan nilai daripada temp kepada pembolehubah sebelumnya yang diwarisi.
Kod Ditulis Semula:
<code class="go">curr := curr + prev prev = temp</code>
Sebab Ralat:
Pengendali := dalam Go mencipta pembolehubah baharu dalam skop semasa, manakala = memberikan nilai kepada pembolehubah sedia ada. Apabila menggunakan :=, pembolehubah baharu dicipta dan pembolehubah lama dibayangi dengan berkesan, bermakna ia tidak digunakan lagi.
Nota:
Isu ini berlaku hanya apabila mengisytiharkan pembolehubah sebelumnya dalam penutupan dalaman. Pembolehubah sebelumnya yang diisytiharkan dalam fungsi fibonacci luar digunakan dengan betul.
Atas ialah kandungan terperinci Mengapa pembolehubah `sebelumnya` dibenderakan sebagai tidak digunakan dalam fungsi Fibonacci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!