我正在尝试编写一个可以被不同结构使用的函数。函数的返回值必须是相应结构的一部分。因此我需要一个接受结构作为参数并返回一个切片的函数。我的代码看起来像这样,但我不知道如何将它包装为一个函数?type name struct{ FirstName string `xml:"firstName"` LastName string `xml:"lastName"` }fileList := TreeTraversal(".") var a name var b []name for i := 0; i < len(fileList); i++{ fileByte, _ := ioutil.ReadFile(fileList[i]) xml.Unmarshal(fileByte, &a) b = append(b, a)}据我所知,我可以将结构作为接口传递给函数,但我不知道返回类型?
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
如果你想要一个接受任何结构类型并返回它的一部分的函数,比如:
func MakeSlice(s ANY_STRUCT_TYPE) []ANY_STRUCT_TYPE
您正在寻找 Go 目前不支持的泛型。
Go 团队正在努力为语言添加泛型——这是一项正在进行的工作,每个人都可以自由参与讨论。一旦泛型存在,它们将提供您在这里寻求的解决方案。
同时,您可以使用代码生成或为您的问题想出稍微不同的设计。一些代码重复也是可以的,Go 并不像其他一些语言那样不喜欢它。
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消