pointers - 在 Go 中传递任意切片
问题描述
我正在编写一个从数据库中检索任意数据的函数,并返回一个带有结果的结构切片。数据结构由用户在 ItemFactory 中定义。然后用户在工厂实现方法,创建空结构:
func (t Example) GenerateEmptyItem() interface{} {
return &Example{}
}
我正在尝试对Example
. 我需要能够使用返回的任何内容来调用诸如 之类的函数len()
,同时保持它的通用性以允许它由“通用”函数返回。
我不能简单地拥有这样的东西,因为一片接口的底层数据分配与一片示例不同:
func (t Country) GenerateEmptyItems() []interface{} {
return []Country{} //Error
}
是否可以使用指向切片的指针,例如&[]Example{}
并将其作为 传递interface{}
,然后仍然可以将其用作切片?还是我要解决这个问题?请记住,我在编译时不知道数据的类型,所以我不能简单地进行转换。
我很感激任何帮助。让我知道我是否可以澄清任何事情。
解决方案
推荐阅读
- c# - Deserializing a serialized JSON file
- scala - Using IntelliJ, how to add dependency in an sbt project
- single-sign-on - 如何自动验证 iframe(跨域)
- java - 循环外的变量在 PMD 中标记为“DU”异常
- css - ExtJS 改变焦点元素的边框颜色
- c# - ListView 没有显示任何关于可观察集合数据绑定的信息
- excel - 将对象作为参数从 UserForm 传递给另一个
- jquery - 在 ajax 中总是调用错误函数。如何解决这个问题?
- r - How to use transpose function (t) to transpose rows by hours of day (0 to 23)?
- php - 通过数据库中的数据在 select2 选项中设置值