go - for 循环的意外行为

标签 go

我当然希望这是简单的事情。当我从 for 循环内的 if 语句中获取信息时,它不会被带到 for 循环外。我可以很好地从 if 语句中打印信息,然后再丢失它。我错过了什么吗?来自 Python 我以前从未经历过这种情况。

func main() {
    var neededinfo string
    for _, slice := range info_slices {
        // Get information out of slices
        if strings.Contains(slice, "indicator ") {
            neededinfo := string(ExeSH("echo '" + slice + "' | awk '{ print $4 }'"))
            neededinfo = neededinfo[1:len(neededinfo)-2]
            fmt.Println(neededinfo) // Returns my information
        }
    }
    fmt.Println(neededinfo) // Returns nothing
}

最佳答案

很可能是您覆盖了 neededinfo 变量

func main() {
    var neededinfo []string
    for _, slice := range info_slices {
        // Get information out of slices
        if strings.Contains(slice, "indicator ") {
            response := string(ExeSH("echo '" + slice + "' | awk '{ print $4 }'"))
            neededinfo = append(neededinfo, response[1:len(response)-2]
        }
    }
    fmt.Println(neededinfo) 
}

关于go - for 循环的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665430/

相关文章:

go - smtp.Dial ("ASPMX.L.GOOGLE.COM:25") 连接错误;但是腻子连接有效

go - 为什么我的 Go 应用程序没有像 busybox `cat` 命令那样从 sysfs 中读取数据?

go - 无法在全新的 Go 项目中加载包

go - 将 Jenkins Freestyle Golang 作业转换为 Jenkinsfile

go - 如何在 golang 网络服务器中使用 prometheus 监控请求成本时间

去打印大量

string - 如何在 Go 中使用反射设置一个指向字符串的结构成员

go - 使用goinstall后导入web.go报错

Golang : fmt, 可变参数和 %!(EXTRA type=value) 错误

go - 同时等待套接字连接和 channel