无限循环:继续打印一行

Kav*_*our 2 loops infinite-loop go

有一个无限循环,每 5 秒调用一次 function() 。根据某些条件, function() 将打印OKNot Ok.

这是我的代码:

package main

import (
    "fmt"
    "time"
    "net/http"
)

func main() {
    
    for {
        dummy()
        time.Sleep(5 * time.Second)
    }
}

func dummy() {
    resp, _ := http.Get("dummy.test.com")
    
    if resp.StatusCode == 200 {
        fmt.Println("OK")
    } else {
        fmt.Println("Not OK.")
    }   
}
Run Code Online (Sandbox Code Playgroud)

而不是打印:

OK
OK
OK
...
Run Code Online (Sandbox Code Playgroud)

反之亦然,我想要打印一行,如下所示:

OK
Run Code Online (Sandbox Code Playgroud)

当 function() 5 秒后重新执行时,我希望即将打印的数据替换同一行上以前打印的数据。

有人能指出我正确的方向吗?

Ini*_*ian 6

您需要为此打印回车符\r,但不能使用Println。建议Printf改用

fmt.Printf("\r%s", "OK")
Run Code Online (Sandbox Code Playgroud)