Rumah >pembangunan bahagian belakang >Golang >Cetak nama enumerasi senarai golang
editor php Yuzai memperkenalkan anda kepada kaedah yang mudah dan berkesan untuk mencetak nama penghitungan senarai golang. Dalam golang, jenis penghitungan diwakili sebagai kumpulan malar, dan kita boleh mencapainya dengan menggelung melalui kumpulan malar dan mencetak nama setiap pemalar. Kaedah ini bukan sahaja mudah dan mudah difahami, tetapi juga boleh digunakan untuk mana-mana program Golang yang mengandungi jenis terbilang. Dengan mengikuti langkah berikut, anda boleh mencetak nama penghitungan senarai golang dengan mudah.
Saya mempunyai penghitungan berikut dan fungsi rentetannya. Apabila saya menggunakan println pada nilai haiwan tertentu, nilai yang betul Nama dicetak. Tetapi apabila saya mencetaknya sebagai senarai lengkap, maka Hanya nilai integer mereka dicetak. Bagaimanakah cara saya mencetak nama haiwan apabila saya mencetak senarai zoo?
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}] }
Seperti yang dikatakan @greedy52, ia harus dieksport a
和b
(yang merupakan jawapan yang betul).
Tetapi jika anda ingin mengekalkannya private
并具有类似的输出,只需在 group
上实现 string()
kaedah seperti ini:
func (g Group) String() string { return fmt.Sprintf("{%s %s}", g.a, g.b) }
Atas ialah kandungan terperinci Cetak nama enumerasi senarai golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!