为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中传递任意切片

在 Go 中传递任意切片

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

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

你不能直接这样做。

您可以使用reflection,但这不是一个很好的解决方案。通常的方法是定义一个接口类型,让您以相同的方式与所有数据进行交互。一个很好的例子就是sort包。


查看完整回答
反对 回复 2023-05-15
  • 1 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信