编写完字符串后,golang io.writer新行

时间:2019-06-25 09:37:28

标签: go newline writer

我有以下使用a package绘制进度条的代码

Composition Root

所有作品,除了末尾没有换行,您可以在这里看到 enter image description here

我不能在Write函数中添加新行字符,因为这将导致在将每个字节压入写入器之后将其换行。我可以有一个整洁的方法吗?

编辑: 我要在进度条之后之后并在下一行打印之前添加新行

1 个答案:

答案 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
}

尽管您的评论表明这是有问题的,但您尚未解释如何做。如果您更新问题来解释为什么这是一个问题,也许可以采用更好的解决方案。