功能makeEvenGenerator
應該返回,在一個連續的方式產生偶數的函數:語法錯誤:不聲明語句外部函數體
package main
import "fmt"
func makeEvenGenerator() func() uint {
i := uint(0)
return func() (ret uint) {
ret = i
i += 2
return
}
}func main() {
nextEven := makeEvenGenerator()
fmt.Println(nextEven()) // 0
fmt.Println(nextEven()) // 2
fmt.Println(nextEven()) // 4
}
當我運行它,我得到的錯誤syntax error: unexpected func, expecting semicolon or newline
和Non-declaration statement outside function body
。
該代碼逐字從Caleb Doxsey編程入門。我不確定問題是什麼。
哦,謝謝。我不認爲編譯器關心那裏的換行符,因爲這兩個部分之間用大括號分開。 – Omid 2014-10-10 20:58:27