无限循环:继续打印一行
Infinite Loop: keep printing a single line
有一个无限循环,每 5 秒调用一次 function()。根据某些条件,function() 将打印 OK
或 Not 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.")
}
}
而不是打印:
OK
OK
OK
...
反之亦然,我想打印一行,如下所示:
OK
并且当function()在5秒后重新执行时,我想要将要打印的数据替换掉同一行之前打印的数据。
有人能给我指出正确的方向吗?
为此,您需要打印回车符 return 字符 \r
,而您不能使用 Println
。建议使用 Printf
而不是
fmt.Printf("\r%s", "OK")
试试这个:
package main
import (
"fmt"
"time"
"net/http"
)
func main() {
for {
result := dummy()
fmt.Println(result)
time.Sleep(5 * time.Second)
}
}
func dummy() string {
resp, _ := http.Get("dummy.test.com")
if resp.StatusCode == 200 {
return "OK"
} else {
return "Not Ok!"
}
}
有一个无限循环,每 5 秒调用一次 function()。根据某些条件,function() 将打印 OK
或 Not 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.")
}
}
而不是打印:
OK
OK
OK
...
反之亦然,我想打印一行,如下所示:
OK
并且当function()在5秒后重新执行时,我想要将要打印的数据替换掉同一行之前打印的数据。
有人能给我指出正确的方向吗?
为此,您需要打印回车符 return 字符 \r
,而您不能使用 Println
。建议使用 Printf
而不是
fmt.Printf("\r%s", "OK")
试试这个:
package main
import (
"fmt"
"time"
"net/http"
)
func main() {
for {
result := dummy()
fmt.Println(result)
time.Sleep(5 * time.Second)
}
}
func dummy() string {
resp, _ := http.Get("dummy.test.com")
if resp.StatusCode == 200 {
return "OK"
} else {
return "Not Ok!"
}
}