采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
func (g *intGen) Read(p []byte) (n int, err error) { next := g() //这边是报错的 if next > 10000 { return 0, io.EOF } s := fmt.Sprintf("%d\n", next) return strings.NewReader(s).Read(p) }
不需要考虑函数指针,go语言中函数本身就是一等公民,变量的类型可以是函数。c语言中变量的类型不能是函数,只能是指针,所以就有了一种叫“函数指针”的东西。go的函数变量内部其实包括了"函数指针",也就是函数入口地址,以及函数闭包中所引用的自由变量。函数,channel,接口,这些go语言的变量类型底层其实含有指针,所以基本上没有需要使用函数指针,channel的指针,接口的指针的场合
非常感谢!
登录后可查看更多问答,登录/注册
语法+分布式爬虫实战 为转型工程师量身打造
3.7k 14
713 1
2.0k 1
1.1k 12