如何将函数返回的int赋值给变量?

时间:2016-05-25 10:20:25

标签: function go var

我是Go的新手,在解决一个非常简单的问题时遇到了一些问题。我正在通过一些简单的问题集来学习,目前我正在尝试打印小于1000万的斐波纳契数列。我的Fibonacci函数很好,但我不确定如何将其值赋给变量,然后我可以在控制结构中使用它。例如:

package main

import "fmt"

func fib() func() int {
    x, y := 0, 1
    return func() int {
        x, y = y, x+y
        return x
    }
}

func main() {
    f := fib()
    for f <= 10000000 {
        fmt.Println(f())
    }
}

我知道我在这里缺少一些简单的东西,但是这不应该继续调用我的函数并抓住Fibonacci序列中的下一个数字,直到该数字不大于或等于1000万?我收到一个错误,告诉我有不匹配的类型func()(int和int)。我知道这很简单,我可能只是个白痴。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试调用函数:

for x := f(); x < 100; x = f() {
    fmt.Println(x)
}