关闭具有多个值的 golang 通道

Close golang channel with multiple values

假设我有一个发送者和任意数量的接收者通过一个通道连接。当发送者完成后,它关闭通道并通知所有接收者。到目前为止一切顺利。

现在假设发送方希望接收方以两种不同的方式完成,比如说,"close immediately" 和 "first finish what you are doing, then close"。为实现这一点,它必须在关闭时向所有接收器广播两个不同的值(现在与以后)。

执行此操作的 Go 惯用方法是什么?

就我个人而言,我会使用两个通道来发出关机信号:https://play.golang.org/p/5erPW1tFXp