[不懂就问] 请问这段 go 代码该如何优化
代码如下,目的是为了同时下载很多台交换机的配置,sws 里有多组业务的交换机,每个业务的每一台配置的下载我都要同时进行,下面的代码是我拍脑袋写下来的,目的达到了,但怎么看都不顺眼,我的 go 水平目前实在有限,求助各位指导一下。
func (s *swbka) downloadSwitchCfg(sws map[string]mulparam) { wgp := sync.WaitGroup{} wgp.Add(len(sws)) for secN, mulP := range sws { go func(secName string, mulP mulparam) { if _, err := os.Stat(secName); os.IsNotExist(err) { err := os.Mkdir(secName, 0644) if err != nil { logrus.Fatal(err) } } wg := sync.WaitGroup{} wg.Add(len(mulP.profiles)) for _, profile := range mulP.profiles { go func(sn string, pf param) { err := s.downloadFile(sn, pf) if err != nil { logrus.Errorln(err) } wg.Done() }(secName, profile) } wg.Wait() wgp.Done() }(secN, mulP) } wgp.Wait() }