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

将结构作为参数传递给函数,并返回相应结构的切片

将结构作为参数传递给函数,并返回相应结构的切片

Go
三国纷争 2023-06-01 18:07:12
我正在尝试编写一个可以被不同结构使用的函数。函数的返回值必须是相应结构的一部分。因此我需要一个接受结构作为参数并返回一个切片的函数。我的代码看起来像这样,但我不知道如何将它包装为一个函数?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 并不像其他一些语言那样不喜欢它。


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

添加回答

举报

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