用于回调,通过其他通道将通道作为数据传递
for callback, passing channels as data through other channels
我正在尝试将通道作为成员包含到结构中。当一个发起者通过通道传递给不同的 goroutines 时,该结构的实例将被逐步处理(同时会有多个发起者)。
并且通道成员将用作回调,returns将每个步骤的结果发送给发起者。
那么,通过其他渠道将渠道作为数据传递是一种好习惯吗?
我应该改用通道的指针吗?
还有其他款式推荐吗?
=================一些额外的想法==============
与全局 sync.Map 映射启动器到回调通道以供每个 goroutine 查找相比,我实际上应该通过通道发送回调通道吗?
这不是一个坏习惯。完全可以通过一个通道通过另一个通道并使用它来收集结果。
请注意,您所描述的并不完全是回调,因为 go 例程不会调用任何东西。它只是简单地在通道中写入数据,通过通道传输。
如果您在通道中传递了一个函数并且 go 例程会调用它,那么您将有一个回调。
我正在尝试将通道作为成员包含到结构中。当一个发起者通过通道传递给不同的 goroutines 时,该结构的实例将被逐步处理(同时会有多个发起者)。 并且通道成员将用作回调,returns将每个步骤的结果发送给发起者。
那么,通过其他渠道将渠道作为数据传递是一种好习惯吗? 我应该改用通道的指针吗? 还有其他款式推荐吗?
=================一些额外的想法==============
与全局 sync.Map 映射启动器到回调通道以供每个 goroutine 查找相比,我实际上应该通过通道发送回调通道吗?
这不是一个坏习惯。完全可以通过一个通道通过另一个通道并使用它来收集结果。
请注意,您所描述的并不完全是回调,因为 go 例程不会调用任何东西。它只是简单地在通道中写入数据,通过通道传输。
如果您在通道中传递了一个函数并且 go 例程会调用它,那么您将有一个回调。