golang 进度条

本文介绍了如何在Golang中创建进度条,包括进度条的组成元素如总量、当前进度和耗时,以及如何计算完成百分比、速度和预计剩余时间。文章还探讨了细节控制,如耗时的正确计算,进度的递增方法,以及如何根据速度调整进度条颜色。此外,还讨论了如何在终端中显示进度条,包括光标的移动和在多进度条情况下如何定位。最后,提供了实现效果的参考链接。
摘要由CSDN通过智能技术生成

进度条元素

    ·总量

    ·当前进度

    ·耗时

 

     通过以上元素可以延伸出:完成百分比、速度、预计剩余时间、根据设置速度快慢阀值用不同的颜色来显示进度条。

 

实现

 

type Bar struct {
    mu       sync.Mutex
    line     int                   //显示在哪行  多进度条的时候用
    prefix   string                //进度条前置描述
    total    int                   //总量
    width    int                   //宽度
    advance  chan bool             //是否刷新进度条
    done     chan bool             //是否完成
    currents map[string]int        //一段时间内每个时间点的完成量
    current  int                   //当前完成量
    rate     int                   //进度百分比
    speed    int                   //速度
    cost     int                   //耗时
    estimate int                   //预计剩余完成时间
    fast     int                   //速度快的阈值
    slow     int                   //速度慢的阈值
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值