来自for循环的意外行为

时间:2014-07-09 23:47:34

标签: 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
}

1 个答案:

答案 0 :(得分:2)

最有可能的是你要覆盖needinfo变量

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) 
}