对于回调,通过其他通道将通道作为数据传递

我正在尝试将一个通道作为成员包含到结构中。当启动器通过通道将结构体的实例传递给不同的 goroutine 时(将同时有多个启动器),该结构体的实例将被逐步处理。通道成员将用作回调,将每个步骤的结果返回给发起者。

那么,通过其他通道将通道作为数据传递是一个好习惯吗?我应该使用通道的指针吗?还有其他款式推荐吗?

=================一些额外的想法==============

与使用全局sync.Map将启动器映射到每个要查找的goroutine的回调通道相比,我实际上应该通过通道发送回调通道吗?


LEATH
浏览 92回答 1
1回答

慕尼黑的夜晚无繁华

这不是一个坏习惯。将一个通道传递到另一个通道并使用它来收集结果是完全可以的。请注意,您所描述的并不完全是回调,因为 go 例程不会调用任何内容。它只是将数据写入通过通道传输的通道中。如果您在通道中传递了一个函数并且 go 例程将调用它,那么您将有一个回调。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go