我正在处理二进制文件。我需要一个函数,它采用任意结构并返回这些结构的数组。我该怎么做?以下是我尝试完成的一个简单示例。目前,我为每个结构都有一个功能。唯一的区别在于:
dataBuf, err := make([]arbitrary_struct_type, numRecs)
type structA struct {
id int32
sDate float64
name string
}
type structB struct {
area int32
polygon string
}
type structC struct {
sTime float64
eTime float64
tSlice int32
kml string
}
func readDataset(grp *Group, arbitrary_struct_type type) ([]arbitrary_struct_type type, error) {
...
dataBuf, err := make([]arbitrary_struct_type, numRecs)
...
return dataBuf, err
}
func main() {
...
a, err := readDataset(grp1, structA)
...
b, err := readDataset(grp2, structB)
...
c, err := readDataset(grp3, structC)
...
}
答案 0 :(得分:0)
您可能希望返回切片而不是数组。
您可以使用reflect.MakeSlice()
函数进行切片,并获取可以使用reflect.TypeOf()
函数的任意对象的类型
我在https://github.com/strongo/app/blob/master/db/interfaces.go& https://github.com/strongo/app/blob/master/gaedb/database.go
中使用的https://github.com/strongo/bots-framework