就像我剛剛剛剛開始學習Go的前兆一樣。這可能是我第三天花一些時間在上面。我一直在處理這個錯誤幾個小時,現在我無法弄清楚什麼是錯誤的。語法錯誤:意外的名稱,期待分號或換行或}
package main
import "fmt"
func main() {
nextFib := fibGenerator();
fmt.Println(nextFib());
fmt.Println(nextFib());
fmt.Println(nextFib());
fmt.Println(nextFib());
fmt.Println(nextFib());
}
func fibGenerator() uint {
var (
n uint = 0
back1 uint = 1
back2 uint = 0
)
_computeFib := func() uint {
if n == 0 {
n++
return 0
} else if n == 1 {
n++
return 1
}
fib := 1back + 2back // throws compile time error on this line
2back = 1back
1back = n
n++
return fib
}
return _computeFib
}
這是它引發的錯誤: 語法錯誤:意外的名字,期待分號或換行或}
這也可能是簡單的東西,但我的圍棋知識有限,我不能把我的手指在上面。任何幫助,將不勝感激。
編輯: 這是最後的工作職能,除了重命名我的變量,如接受的答案說,我也不得不使發電機返回返回一個int的函數。我也有一個錯誤w/Fibonacci邏輯。
func fibGenerator() func() uint {
var (
n uint = 0
back1 uint = 1
back2 uint = 0
)
_computeFib := func() uint {
if n == 0 {
n++
return 0
} else if n == 1 {
n++
return 1
}
fib := back1 + back2
back2 = back1
back1 = fib
n++
return fib
}
return _computeFib
}
男人謝謝你,真是愚蠢....一定是一個重構錯誤。 – John
沒問題。它發生了:)好東西有一個編譯器捕捉這些小錯誤。 – vially