php Xiaobian Yuzai introduces you to a simple and effective method for printing the enumeration name of the golang list. In golang, enumeration types are represented as constant groups, and we can achieve this by looping through the constant group and printing the name of each constant. This method is not only simple and easy to understand, but also applicable to any Golang program containing enumerated types. By following the following steps, you can easily print out the enumeration name of the golang list.
I have the following enumeration and its string functions. When I use println on a specific animal value, the correct The name is printed. But when I print it as a complete list, then Only their integer values are printed. How do I print the animal names when I print a zoo list?
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}] }
As @greedy52 said, a
and b
should be exported (which is the correct answer).
However, if you want to keep them private
and have similar output, just implement the string()
method on the group
like this:
func (g Group) String() string { return fmt.Sprintf("{%s %s}", g.a, g.b) }
The above is the detailed content of Print enumeration name of golang list. For more information, please follow other related articles on the PHP Chinese website!