这里为什么不行啊??
func NetworkSource(addr string) <-chan int { out := make(<-chan int) go func() { conn, err := net.Dial("tcp",addr) if err != nil { panic(err) } // 原代码为何需要先得到 r ,再把r中的每一个数据传给 out, 为什么不能直接用out! out = ReaderSource(bufio.NewReader(conn),-1) }() return out }
兄弟你这个就离谱
同问 为什么不直接return ReaderSource(buffio.NewReader(conn), -1)呢?
go func 执行前直接返回了out,外部调用使用out接数据,外部不知道readersource返回的channel,所以拿到了readersource返回的channel,导入到out。