猿问

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

我正在尝试编写一个可以被不同结构使用的函数。函数的返回值必须是相应结构的一部分。因此我需要一个接受结构作为参数并返回一个切片的函数。我的代码看起来像这样,但我不知道如何将它包装为一个函数?


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)

}

据我所知,我可以将结构作为接口传递给函数,但我不知道返回类型?


三国纷争
浏览 93回答 1
1回答

慕工程0101907

如果你想要一个接受任何结构类型并返回它的一部分的函数,比如:func MakeSlice(s ANY_STRUCT_TYPE) []ANY_STRUCT_TYPE您正在寻找 Go 目前不支持的泛型。Go 团队正在努力为语言添加泛型——这是一项正在进行的工作,每个人都可以自由参与讨论。一旦泛型存在,它们将提供您在这里寻求的解决方案。同时,您可以使用代码生成或为您的问题想出稍微不同的设计。一些代码重复也是可以的,Go 并不像其他一些语言那样不喜欢它。
随时随地看视频慕课网APP

相关分类

Go
我要回答