提问人:Benji Vesterby 提问时间:8/23/2017 最后编辑:Benji Vesterby 更新时间:8/25/2017 访问量:904
尝试取消引用一个接口,该接口是指向后端结构对象的指针,以便我可以按值传递给函数
Trying to dereference an interface that is a pointer to a struct object on the back end so I can pass by value to a function
问:
我有一个接口,它表示初始化后指向结构对象的指针。我想访问接口引用的对象的 Value,而不是指针,以便我可以按值将其作为接口类型传递给函数。
这是我的问题的一个例子:https://play.golang.org/p/_3vKThlj-V
我希望能够将 val by value 传递给 main 函数中的函数 EvalTest,以便我可以覆盖指向另一个线程中 TestStruct 对象的指针,而不会在另一个线程中引起指针取消引用问题。
问题是我正在对我的接口对象运行几千个 go 例程,但是由于我集成的系统的限制,每 50 次 go 例程调用我都必须重新初始化我的指针。这似乎导致了不一致的状态,即当 go 例程尝试再次访问新结构体初始化时,它尚未完全完成。因此,我想按值传递它的原因是,这样我就不必担心指针被换掉了。
对此有什么想法吗?
答:
0赞
Benji Vesterby
8/25/2017
#1
这是通过利用通道进行集成 API 连接并在成功初始化时向下传递一个新指针来解决的。我还能够使用其他一些优化来确保仅在连接成功时替换指针。这是我在 Go slack 频道中从 Paul K 那里获得的示例。
评论