如何在func中修改全局结构值

时间:2019-07-02 01:54:51

标签: go

当我使用它遍历一个结构时,内存地址是不同的。所以我不能修改它的值

type SiteUrl struct {
    name string
    url  string
    isUp bool
}

func debug(s *SiteUrl) {
    s.isUp = false
}

func main() {

    sites := []SiteUrl{
        {"test site", "http://127.0.0.1:8000", true},
    }
    for {
        for _, site := range sites {

            fmt.Println(&site.isUp, site.isUp)
            debug(&site)
        }
    }


}

它的值没有被修改

1 个答案:

答案 0 :(得分:2)

您的println函数在更改操作debug()之前运行。

debug()首先,然后是println 它会工作