什么`(< -chan Delivery)(交付)`做什么?

时间:2015-01-21 12:18:45

标签: go

我找到了这一行:

return (<-chan Delivery)(deliveries), nil

https://github.com/streadway/amqp/blob/master/channel.go#L1089

它做什么?为什么是双括号?

3 个答案:

答案 0 :(得分:8)

这是一个type conversion。在您的情况下,它会将chan DeliveryDelivery值的双向通道)转换为<-chan Delivery(仅Delivery值的接收通道。)

答案 1 :(得分:4)

这是type conversion。将deliveries作为只读频道返回。

答案 2 :(得分:4)

它是从双向通道到只发送通道的类型转换,如果您提供它,可以省略。转换将隐式完成。