取得下一个元素
来源:7-2 函数式编程例一

残天一月
2018-03-15
func (g intGen) Read(p []byte) (n int, err error) {
next := g() //此处 在调用次g()之后就取得了下一个元素
s := fmt.Sprintf("%d\n", next)
if next > 1000000 {
return 0, io.EOF
}
return strings.NewReader(s).Read(p)
}
如上 老师您好、你说的next:=g()就取得了下一个元素这句话我没搞懂、为什么调用之后就取得下一个元素了啊?
写回答
1回答
-
因为g是intGen,就是认为每次调用它会取得下一个元素。比如我们示例里传给它的斐波那契数列生成器,用了闭包的概念,你看每次调用f都会生成下一个数。
012018-03-16
相似问题