php小编鱼仔为你介绍一种简单而有效的方法,用于打印golang列表的枚举名称。在golang中,枚举类型被表示为常量组,我们可以通过遍历常量组并打印每个常量的名称来实现这一目标。这种方法不仅简单易懂,而且适用于任何包含枚举类型的golang程序。通过以下几步操作,你可以轻松地打印出golang列表的枚举名称。
问题内容
我有以下枚举及其字符串函数。 当我对特定的 animal 值使用 println 时,正确的 名称被打印。但是当我将其打印为完整列表时,然后 仅打印它们的整数值。 当我打印动物园列表时如何打印动物名称?
package main
import (
"fmt"
)
type Animal int64
const (
Goat Animal = iota
Cat
Dog
)
func (n Animal) String() string {
switch n {
case Goat:
return "Goat"
case Cat:
return "Cat"
case Dog:
return "Dog"
}
return "?"
}
type Group struct {
a, b Animal
}
type Zoo []Group
func main() {
var g1,g2 *Group
g1 = new(Group)
g1.a = Goat
g1.b = Cat
g2 = new(Group)
g2.a = Dog
g2.b = Cat
var z1 Zoo
z1 = []Group{*g1,*g2}
fmt.Println("Animal: ", Dog) // prints Dog
fmt.Println(z1) // prints [{0 1} {3 1}]
}
解决方法
正如@greedy52所说,应该导出a
和b
(这是正确的答案)。
但是,如果您想保留它们 private
并具有类似的输出,只需在 group
上实现 string()
方法,如下所示:
func (g Group) String() string {
return fmt.Sprintf("{%s %s}", g.a, g.b)
}
以上就是打印 golang 列表的枚举名称的详细内容,更多请关注编程网其它相关文章!