我是一个 Golang 新手,试图构建一个简单的 CLI。我正在将 API 调用有效负载转换为一个结构,并希望将此结构中的一些信息格式化为一个很好的可打印字符串。我要打印的信息之一来自结构数组,如本例所示:
type Pokemon struct {
Abilities []struct {
Ability struct {
Name string `json:"name"`
URL string `json:"url"`
} `json:"ability"`
IsHidden bool `json:"is_hidden"`
Slot int `json:"slot"`
} `json:"abilities"`
Height int `json:"height"`
ID int `json:"id"`
Name string `json:"name"`
Types []struct {
Slot int `json:"slot"`
Type struct {
Name string `json:"name"`
URL string `json:"url"`
} `json:"type"`
} `json:"types"`
Weight int `json:"weight"`
}
}
我正在尝试编写一个通用的受体函数,它遍历一些结构数组的字段并将其字段连接到一个字符串中。我可以做一个专门迭代某些字段的函数,如下所示:
func (p Pokemon) stringifyPokemonAbilities() string {
var listOfAbilities []string
for _, ability := range p.Abilities {
listOfAbilities = append(listOfAbilities, ability.Ability.Name)
}
return strings.Join(listOfAbilities[:], " / ")
}
返回例如synchronize / inner-focus
像这样工作,我将不得不向该Type领域编写几乎相同的功能。我的问题是,如何使这个函数更通用,接受一个字段并对其进行迭代。有什么想法吗?
跃然一笑
相关分类