函数作为参数的话,类型不需要规定好么

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

拍案惊起

2018-09-04

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

f的类型是intGen,

printFileContent接收的参数类型是io.Reader

正常来说,这一块了类型限制不应该是inGen么

写回答

1回答

ccmouse

2018-09-08

这里正是我想要说明的Go语言对接口的理解。io.Reader是一个接口,规定了Read方法。任何东西只要有这样一个Read方法,就说它实现了io.Reader。我们的intGen这个类型也同样实现了这个Read方法(虽然它不是其它语言中“正统”的对象,只是一个函数类型)。所以他可以当做printFileContent的参数。

同学可以试试把Read方法改一改,就会编译错误。

0
1
拍案惊起
非常感谢老师!
2018-09-09
共1条回复

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

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

5995 学习 · 1909 问题

查看课程