«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему я получаю ошибку «предыдущее объявлено и не использовано» в моем коде Go?

Почему я получаю ошибку «предыдущее объявлено и не использовано» в моем коде Go?

Опубликовано 8 ноября 2024 г.
Просматривать:619

Why am I getting the \

Go — объявленное имя переменной prev не используется в заданной области функции.

В следующем фрагменте кода отображается сообщение об ошибке «prog.go:13: prev объявлено, а не используется».

package main

import "fmt"

// fibonacci is a function that returns
// a function that returns an int.
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 

Ошибка возникает, поскольку переменная prev объявлена ​​в функции fibonacci, но она никогда не используется. В частности, строка prev := temp создает новую локальную переменную с именем prev. Эта переменная отличается от переменной prev, объявленной во внешней области. Чтобы исправить ошибку, нам нужно изменить код, чтобы использовать переменную prev из внешней области вместо создания новой локальной переменной.

Вот исправленный код:

package main

import "fmt"

// fibonacci is a function that returns
// a function that returns an int.
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 
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3