尝试取消引用一个接口,该接口是指向后端结构对象的指针,因此我可以按值传递给函数

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

我有一个接口,表示初始化后指向结构对象的指针。我想访问接口引用的对象的值而不是指针,以便我可以按值将其作为接口类型传递给函数。

这是我的问题的一个例子:https://play.golang.org/p/_3vKThlj-V

我希望能够将 val 按值传递给主函数中的 EvalTest 函数,这样我就可以在另一个线程中覆盖指向 TestStruct 对象的指针,而不会在另一个线程中引起指针取消引用问题。

问题是我 运行 几千个针对我的接口对象的 go 例程,但是由于系统的限制,每 50 个 go 例程调用我必须重新初始化我的指针整合。这似乎导致了一种不一致的状态,即当 go 例程尝试再次访问它时,新的结构初始化没有完全完成。所以我想按值传递它的原因是我不必担心指针被换出。

对此有什么想法吗?

通过为我的集成 api 连接使用一个通道并在成功初始化时向下传递一个新指针,解决了这个问题。我还可以使用其他一些优化来确保我只在连接成功时才替换指针。这是我在 Go slack 频道中从 Paul K 那里得到的一个例子。

https://play.golang.org/p/AmbsfQOzol