该函数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的《Go编程入门》。我不确定是什么问题。
您缺少末尾的“}”makeEvenGenerator
和中的“ func”之间的换行符main
。
我更正了错误,并将代码发布到了操场上。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句