Struct 未更新结构变量

Struct 未更新结构变量,struct,go,channel,Struct,Go,Channel,我在测试代码中有一个数组 arr := []Server{} 它要求arr[0].GetId() 服务器是一个接口。 ServerInstance是实现接口方法的结构,即 func (serv ServerInstance) GetId() int { return serv.Id } 我有一个像戈罗廷一样的女孩 func (serv *ServerInstance) someFunc 正在更新struct的变量“Id”。我确信价值更新为- serv.Id=23445 但这并没有

我在测试代码中有一个数组

arr := []Server{}
它要求arr[0].GetId()

服务器是一个接口。 ServerInstance是实现接口方法的结构,即

func (serv ServerInstance) GetId() int {
    return serv.Id
}
我有一个像戈罗廷一样的女孩

func (serv *ServerInstance) someFunc
正在更新struct的变量“Id”。我确信价值更新为-

serv.Id=23445
但这并没有反映在3号线的通话中

*更新***

for somecondition {
     arr=append(arr,FuncReturningServerIntercae() // calling this invokes goroutine which keeps updating `Id` very frequently
}


for {
   for _,s := range arr {
        print s.GetId()   // ** No Update **
     }
    sleep(some duration)
}
**范例**

在附加结构时复制结构,而不是在示例中放置指向结构本身的指针。--按预期工作是吗?
进一步信息:Golang是一种传递值语言,因此如果您使用goroutine,并且希望保持数据的神圣性,最好使用指针。

当然可以,但是您必须为某人显示一些代码来帮助您确定哪一部分?如果第3行的调用位于单独的goroutine中,有可能您的id还没有更新?就在assignmet
serv.id=23445
之后,我打印F以验证有很多可能出错的事情。。。很难说没有一个简单的小例子。你能把它归结为相关的代码片段,并将代码或链接发布到play.golang.org或类似的网站吗?我从该链接中得到“snippetnotfound”。