Rumah > pembangunan bahagian belakang > Golang > Mengapa Adakah Go Throw \'sebelum diisytiharkan dan tidak digunakan\' Ralat Walaupun Permulaan Pembolehubah?

Mengapa Adakah Go Throw \'sebelum diisytiharkan dan tidak digunakan\' Ralat Walaupun Permulaan Pembolehubah?

Mary-Kate Olsen
Lepaskan: 2024-10-31 03:37:01
asal
1029 orang telah melayarinya

Why Does Go Throw

Go - Ralat: "sebelumnya diisytiharkan dan tidak digunakan", Walaupun Permulaan Boleh Ubah

Dalam Go, menghadapi ralat "prev declared and not digunakan" apabila pembolehubah kelihatan dimulakan boleh membingungkan. Mari kita periksa kes tertentu:

<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>
Salin selepas log masuk

Isunya terletak pada fungsi tanpa nama dalaman dalam fibonacci(). Kod mengisytiharkan pembolehubah prev, yang dibayangi oleh tugasan := berikutnya. Ini mencipta pembolehubah tempatan baharu yang tidak digunakan, mencetuskan ralat "prev declared and not used".

Resolusi:

Untuk menyelesaikan masalah ini, ubah suai : = tugasan kepada =. Ini memberikan nilai temp kepada pembolehubah prev yang diwarisi:

<code class="go">prev = temp</code>
Salin selepas log masuk

Begitu juga, baris seterusnya hendaklah:

<code class="go">curr = curr + prev</code>
Salin selepas log masuk

Ini memastikan prev digunakan dengan betul dan ralat diselesaikan .

Atas ialah kandungan terperinci Mengapa Adakah Go Throw \'sebelum diisytiharkan dan tidak digunakan\' Ralat Walaupun Permulaan Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan