我正在编写一个函数,该函数从数据库中检索任意数据,并返回带有结果的结构片段。数据结构由用户在 ItemFactory 中定义。然后用户在工厂上实现方法,创建空结构:
func (t Example) GenerateEmptyItem() interface{} { return &Example{} }
我正在尝试对Example
. 我需要能够使用返回的任何内容来调用诸如 之类的函数len()
,同时保持它的通用性以允许它由“通用”函数返回。
我不能简单地拥有这样的东西,因为接口切片的底层数据分配与示例切片不同:
func (t Country) GenerateEmptyItems() []interface{} { return []Country{} //Error }
是否可以使用指向切片的指针,例如&[]Example{}
并将其作为 传递interface{}
,然后仍然可以将其用作切片?还是我做错了?请记住,我不知道编译时数据的类型,所以我不能简单地强制转换。
我感谢任何帮助。如果我能澄清任何事情,请告诉我。
呼唤远方
相关分类