独立于第二个示例的正确性(如注释中所述,您没有按照自己的想法进行操作,但是很容易修复),我倾向于认为第一个示例更容易掌握。
现在,我什至不会说渠道更加惯用。通道是Go语言的一种签名功能,并不意味着在任何可能的情况下使用它们都是惯用的。Go的惯用用法是使用最简单,最容易理解的解决方案:在这里,
WaitGroup传达含义(您的主要职能是
Wait完成工作)和机制(工作人员在工作时通知
Done)。
除非您的情况非常特殊,否则我不建议您在此使用渠道解决方案。

独立于第二个示例的正确性(如注释中所述,您没有按照自己的想法进行操作,但是很容易修复),我倾向于认为第一个示例更容易掌握。
现在,我什至不会说渠道更加惯用。通道是Go语言的一种签名功能,并不意味着在任何可能的情况下使用它们都是惯用的。Go的惯用用法是使用最简单,最容易理解的解决方案:在这里,
WaitGroup传达含义(您的主要职能是
Wait完成工作)和机制(工作人员在工作时通知
Done)。
除非您的情况非常特殊,否则我不建议您在此使用渠道解决方案。