package mainimport ("fmt""log""github.com/streadway/amqp")func failOnError(err error, msg string) {if err != nil {log.Fatalf("%s: %s", msg, err)panic(fmt.Sprintf("%s: %s", msg, err))}}func main() {conn, err := amqp.Dial("amqp://guest:guest@192.168.99.100:5672/")failOnError(err, "Failed to connect to RabbitMQ")defer conn.Close()ch, err := conn.Channel()failOnError(err, "Failed to open a channel")defer ch.Close()q, err := ch.QueueDeclare("hello", // namefalse, // durablefalse, // delete when ususedfalse, // exclusivefalse, // no-waitnil, // arguments)failOnError(err, "Failed to declare a queue")msgs, err := ch.Consume(q.Name, // queue"", // consumertrue, // auto-ackfalse, // exclusivefalse, // no-localfalse, // no-waitnil, // args)failOnError(err, "Failed to register a consumer")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}
请问《cloud.native.go》这段代码中goroutine为什么是run forever
https://github.com/cloudnativego/rabbit-hello/blob/master/receive.go
