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 列表的枚举名称的详细内容。更多信息请关注PHP中文网其他相关文章!