【发布时间】:2019-04-19 08:08:55
【问题描述】:
我想创建一个可以由函数以go-github 包中的方式返回的结构列表。
但是创建和填充此类列表的正确方法是什么?
我找到了两种方法,例如,使用append():
...
allowedRepos := strings.Fields("repo1, repo2")
actualRepos := []Repos{}
actualRepos = append(actualRepos, Repos{Name: "repo1", URL: "gth.com/repo1"})
actualRepos = append(actualRepos, Repos{Name: "repo2", URL: "gth.com/repo2"})
...
并通过“直接初始化:
...
actualRepos := []Repos{
Repos{Name: "repo1", URL: "gth.com/repo1"},
Repos{Name: "repo2", URL: "gth.com/repo2"},
}
它们有效,但看起来都有些尴尬和错误。
那么 - 最好的方法是什么?
看起来需要使用指针创建它,但无法使其工作。
【问题讨论】:
-
这两种方法都是正确的,它们都没有错。尴尬,或最好,是主观的。您可以跳过切片元素的文字初始化中的类型,即
[]Repos{{ ... }, { ... }}很好。最后,您可以将切片初始化为特定长度并使用索引填充它,即。make([]Repos, 2)然后actualRepos[0] = Repo{ ... }等等。