我有以下使用a package绘制进度条的代码
Composition Root
我不能在Write函数中添加新行字符,因为这将导致在将每个字节压入写入器之后将其换行。我可以有一个整洁的方法吗?
编辑: 我要在进度条之后之后并在下一行打印之前添加新行
答案 0 :(得分:3)
您提出的问题的简单答案就是在进度条完成后再打印换行符:
func demoLoadingBarCount(maximumInt int) {
buf := &tmpStruct{}
bar := progressbar.NewOptions(
maximumInt,
progressbar.OptionSetTheme(progressbar.Theme{Saucer: "█", SaucerPadding: "-", BarStart: ">", BarEnd: "<"}),
progressbar.OptionSetWidth(100),
progressbar.OptionSetWriter(buf),
)
for i := 0; i < maximumInt; i++ {
bar.Add(1)
time.Sleep(10 * time.Millisecond)
}
fmt.Fprintf(buf, "\n") // <---- Add this
}
尽管您的评论表明这是有问题的,但您尚未解释如何做。如果您更新问题来解释为什么这是一个问题,也许可以采用更好的解决方案。