2016-05-25 112 views
0

我是Go的新手,在解決一個非常簡單的問題時遇到了一些問題。我正在通過一些簡單的問題集進行學習,目前正試圖打印小於1000萬的斐波納契數列。我的斐波那契函數很好,但我不知道如何將它的值賦給一個變量,然後我可以在控制結構中使用它。例如:如何將函數返回的int分配給變量?

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序列中抓住下一個號碼,直到數不大於或等於10萬?我收到一個錯誤,告訴我有不匹配的類型func()(int和int)。我知道這很簡單,我可能只是一個白癡。 在此先感謝。

回答

1

嘗試調用該函數:

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

不錯的嘗試。不幸的是,這將消耗一半的斐波納契數字,只有一半將被打印。 – Volker

+0

@Volker啊是的,杜。編輯。 – cnicutar

+0

謝謝!我知道我很愚蠢 – DigitalKraken

相關問題