forever := make(chan bool)
go func() {
for d := range msgs {
log.Printf("Received a message: %s", d.Body)
}
}()
log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
<-forever
上面这行代码什么意思?
"<-forerver" 这是什么语法?
go func(){}() 这又是什么语法?
修改为:
另外,你要是真的想实现CTRL+C执行优雅退出的话,这样写:
比较推荐你看这个代码片段,
因为和题目的几个关键词比较像:协程,协程+匿名函数,channel。
写的比较完善的一个socket-port的proxy,里面有协程的用法,有监听信号的channel,有waitgroup实现协程的控制,系统signal信号处理。