关于io.Reader接口的问题

来源:7-2 函数式编程例一

CoderTh

2020-12-16

http://img.mukewang.com/szimg/5fd9adb309d7e97c06140115.jpg

Reader接口是要求实现这个接口

http://img1.sycdn.imooc.com/szimg/5fd9adec095cadb609700515.jpg

我这里也是的确实现了这个接口,但是当给printFileContents传参数是报错如下

http://img.mukewang.com/szimg/5fd9ae1e094ce31311940132.jpg

是我那个地方写的有问题嘛

写回答

1回答

ccmouse

2020-12-16

它出错信息说这个类型是func() int,而不是我们这里定义的inGen。

需要写成

var f intGen = fibonacci()


0
3
ccmouse
回复
慕妹3255656
不会是版本问题,go的各个版本承诺编译上的兼容性,很少会有因为版本而编译不过的情况。 func() int 和intGen严格来说是不同的,func() int没有Read方法,而intGen有。但go的编译器给我们提供了很多方便,比如我们需要intGen参数的时候,可以传入func() int,需要func() int参数时,我们可以传入intGen。但这里当作Reader接口使用的时候,编译器没有提供我们直接使用,需要我们显示转换。
2021-11-02
共3条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程