hp>用一个struct把他们存起来。类似这样:
type intGen struct {
gen func() int
reader io.Reader // 上一次从gen读出来没有但没有读完的部分存在这里
}
func (g *intGen) Read(p []byte) (int, error) {
...
}
这个reader就是strings.NewReader,我们把它存下来,如果它读完了,我们就调用gen生成下一个数,以及下一个strings.NewReader。不然我们先从reader读,再调用gen,生成strings.NewReader,接着读。