[[Go]]でプログレスバーに進捗状況を表示する。
[[pb]]を使う。以下は[[チャネル]]を使った非同期処理に対してプログレスバーで進捗状況を表示するコード。
```go
import (
"github.com/cheggaaa/pb/v3"
)
// 中略
func InspectRecords(records []Seed, concurrency int) (results []Result) {
semChan := make(chan struct{}, concurrency)
asyncResultsChan := make(chan AsyncResult, len(records))
progress := pb.StartNew(len(records))
for i, record := range records {
i := i
record := record
go func() {
semChan <- struct{}{}
progress.Increment()
r, err := inspect(i+1, record)
asyncResultsChan <- AsyncResult{Value: r, Err: err}
<-semChan
}()
}
// 中略
```