【问题标题】:How to assign an int returned by a function to a variable?如何将函数返回的int分配给变量?
【发布时间】:2016-05-25 18:27:29
【问题描述】:

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

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())
    }
}

我知道我在这里遗漏了一些简单的东西,但这不应该一直调用我的函数并抓取斐波那契数列中的下一个数字,直到该数字不大于或等于 1000 万?我收到一条错误消息,告诉我 func()(int 和 int)类型不匹配。我知道这很简单,我可能只是个白痴。 提前致谢。

【问题讨论】:

    标签: function go var


    【解决方案1】:

    尝试调用函数:

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

    【讨论】:

    • 不错的尝试。不幸的是,这将消耗一半的斐波那契数,并且只会打印其中的一半。
    • @Volker 啊,是的,呃。已编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 2023-03-06
    • 2017-09-23
    • 2012-11-14
    相关资源
    最近更新 更多