Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 无限循环:保持打印一行_Loops_Go_Infinite Loop - Fatal编程技术网

Loops 无限循环:保持打印一行

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

有一个无限循环,每5秒调用一个函数。根据特定条件,该功能将打印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
当函数在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{这只是为了举例。我永远不会分享真实的东西。