У меня есть массив в тестовом кодеGo язык (golang) переменная структура не обновляется
arr := []Server{}
который просит обр [0] .GetId()
Сервер представляет собой интерфейс. ServerInstance является структурой реализации способа интерфейса, т.е.
func (serv ServerInstance) GetId() int {
return serv.Id
}
У меня есть goroutine как
func (serv *ServerInstance) someFunc
, который обновляет переменную «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)
}
** Пример ** http://play.golang.org/p/zUqJ0hEjxv
ну, вы уверены, но вам нужно будет показать код для somone, чтобы помочь – Arjan
Какую часть вы сомневаетесь? –
Если вызов в строке 3 находится в отдельной версии goroutine, возможно, что ваш идентификатор еще не обновлен? – weberc2