Loops 无限循环:保持打印一行
有一个无限循环,每5秒调用一个函数。根据特定条件,该功能将打印OK(正常)或Not OK(不正常) 这是我的密码:Loops 无限循环:保持打印一行,loops,go,infinite-loop,Loops,Go,Infinite Loop,有一个无限循环,每5秒调用一个函数。根据特定条件,该功能将打印OK(正常)或Not OK(不正常) 这是我的密码: package main import ( "fmt" "time" "net/http" ) func main() { for { dummy() time.Sleep(5 * time.Second) } } func dummy
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
当函数在5秒后重新执行时,我希望将要打印的数据替换同一行上以前打印的数据
有人能给我指出正确的方向吗?您需要打印回车符\r,这是Println无法打印的。建议改用Printf
您需要为此打印回车符,\r而不能使用Println打印。建议改用Printf 试试这个:
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!"
}
}
试试这个:
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!"
}
}
您正在寻找终端API而不是日志库。例如,谷歌ncurses已经给出了答案。无论如何,谢谢Norb。请检查resp可能为零,如果您没有评估可能的错误。我建议您按照以下步骤操作,如果resp!=零和响应状态代码==200{这只是为了一个例子。我永远不会分享真实的东西。你正在寻找一个终端API而不是一个日志库。谷歌ncurses会给你一个例子,它已经得到了答案。无论如何,谢谢Norb。请检查resp可能是零,你没有评估一个可能的错误。我建议你做如下,如果resp!=nil&&resp.StatusCode==200{这只是为了举例。我永远不会分享真实的东西。