为了账号安全,请及时绑定邮箱和手机立即绑定

转到—声明的且未使用的错误,当我认为已对变量执行此操作时

转到—声明的且未使用的错误,当我认为已对变量执行此操作时

Go
FFIVE 2021-05-05 17:26:29
此代码有什么问题?package mainimport "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 < 10; i++ {        fmt.Println(f())    }}prog.go:13:已声明且未使用prev
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

如果您进行了Kevin Ballard建议的更改,那么,


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 < 10; i++ {

        fmt.Println(f())

    }

}

输出:


1

2

3

5

8

13

21

34

55

89

输出不是斐波那契数列。


对于斐波那契数列,


package main


import "fmt"


func fibonacci() func() int {

    a, b := 0, 1

    return func() (f int) {

        f, a, b = a, b, a+b

        return

    }

}


func main() {

    f := fibonacci()

    for i := 0; i < 10; i++ {

        fmt.Println(f())

    }

}

输出:


0

1

1

2

3

5

8

13

21

34


查看完整回答
反对 回复 2021-05-31
  • 2 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信