采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
func (g intGen) Read(p []byte) (int, error) { // 这块的语法规则老师帮忙看看 next := g() if next > 10000 { return 0, io.EOF } //s := strconv.Itoa(next) + "\n" s := fmt.Sprintf("%d\n", next) return strings.NewReader(s).Read(p) }
g是一个函数类型,所以可以调用。go语言中函数是一等公民,而且可以给任何自定义类型添加方法。
所以函数类型也可以有方法。
intGen是一个返回int的函数。使用起来的话,是这样的:
f := intGen(func () int { return 3})b := make([]byte, 1024)f.Read(b)
f := intGen(func () int {
return 3
})
b := make([]byte, 1024)
f.Read(b)
我在课上使用了Scanner,Scanner在运行时会调用Read,而Read会调用g
登录后可查看更多问答,登录/注册
语法+分布式爬虫实战 为转型工程师量身打造
3.7k 14
713 1
2.0k 1
1.1k 12