在我的函数中,我有一个 Product 结构变量,但我无法访问 Product 结构,我想从它的变量中制作一个 Product 片段,例如:
test1 := Product{}
....
....
....
test2 := []TypeOf(test1)
我该怎么做?
更新: 我真正想要实现的目标是什么?
我有一些结构想在 gorm 的适配器中使用。
例如,在我的适配器中,我有一个 FindAll 方法需要我的结构之一的 slice 。
我所有的结构都在一个名为 Domains 的包中,我不想从使用(调用)FindAll 函数的地方发送所需的变量。
现在我将所有结构注册到 Map 并使用结构名称在适配器中获取它们 但结果是该结构的变量而不是该结构的类型,因此我不能从中创建另一个变量或从中创建一个变量。
最佳答案
您可以使用 reflection 执行此操作,特别是 TypeOf
、SliceOf
和 MakeSlice
,但是,它不会很有用,因为您可以仅获取对它的引用作为 interface{}
,您不能像 slice 一样使用它。或者,您可以将它分配给 []interface{}
类型的 slice ,这样您就可以使用该 slice ,但同样,如果不能引用底层类型,您不能真正对这些值做任何事情。您可能需要重新考虑您的设计。
关于go - 用它的变量制作一个结构的 slice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447571/