You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在V语言中无限遍历数组实现加载Spinner?

解决V语言加载Spinner无限循环的问题

你的代码只遍历一次数组就停止,是因为当counter超过数组长度时执行了break退出了循环。要实现无限循环展示Spinner,只需要在counter到达数组末尾时重置为0,而非终止循环。此外,原代码用println会导致每一行输出都换行,Spinner会变成多行堆叠,建议改用\r回到行首覆盖之前的输出,让动画在同一位置显示。

修改后的代码:

import time
import os

const spinner = [ '.     ', ' .    ', '  .   ', '    .  ', '     . ', '      .', '     . ', '    .  ', '  .   ', ' .    ' ]
mut counter := 0

for {
    // 用\r回到行首,覆盖之前的输出,实现单行动画
    print('\r${spinner[counter]}')
    os.flush()
    time.sleep(250 * time.millisecond)
    
    counter++
    // 重置counter,实现无限循环遍历数组
    if counter >= spinner.len {
        counter = 0
    }
}

关键修改点:

  • 移除原代码中的break逻辑,改为当counter等于数组长度时重置为0,让数组遍历可以循环往复
  • 将println替换为print('\r${spinner[counter]}'),利用回车符\r让光标回到行首,每次输出覆盖上一次的内容,避免动画多行显示
  • 简化了循环内的逻辑结构,让代码更清晰

内容的提问来源于stack exchange,提问作者Redefa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 14:02:35