itemsaver函数调用

来源:17-1 ItemSaver的架构

chore

2018-04-12

itemsaver函数的返回值是一个channel,返回值不是函数执行完成返回的值吗,放item进去可以吗?这个逻辑不太懂

写回答

1回答

ccmouse

2018-04-13

channel在go语言中是一等公民。也就是可以像其他比如整数,字符串这样传来传去。

这里调用ItemSaver之后他生成并且返回一个channel,背后开了一个goroutine来从这个channel接收并且处理数据。由于之前说到的函数闭包的原因,这个goroutine,以及里面所引用的变量,在ItemSaver返回之后仍然继续在工作。然后拿着返回值也就是拿着这个channel的人可以往里放item。这样的逻辑很合理。


3
0

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

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

5995 学习 · 1909 问题

查看课程