Gibt den Aufzählungsnamen der Golang-Liste aus

王林
Freigeben: 2024-02-10 18:21:07
nach vorne
577 Leute haben es durchsucht

打印 golang 列表的枚举名称

php-Editor Yuzai stellt Ihnen eine einfache und effektive Methode zum Drucken des Aufzählungsnamens der Golang-Liste vor. In Golang werden Aufzählungstypen als Konstantengruppen dargestellt, und wir können dies erreichen, indem wir die Konstantengruppe durchlaufen und den Namen jeder Konstante ausgeben. Diese Methode ist nicht nur einfach und leicht zu verstehen, sondern auch auf jedes Golang-Programm anwendbar, das Aufzählungstypen enthält. Wenn Sie die folgenden Schritte ausführen, können Sie den Aufzählungsnamen der Golang-Liste einfach ausdrucken.

Frageninhalt

Ich habe die folgende Aufzählung und ihre Zeichenfolgenfunktionen. Wenn ich println für einen bestimmten Tierwert verwende, ist das richtig Der Name wird gedruckt. Aber wenn ich es als vollständige Liste ausdrucke, dann Es werden nur ihre ganzzahligen Werte gedruckt. Wie drucke ich die Tiernamen aus, wenn ich eine Zooliste drucke?

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}]
}
Nach dem Login kopieren

Lösung

Wie @greedy52 sagte, sollte es exportiert werden ab (was die richtige Antwort ist).

Aber wenn du sie behalten willst private 并具有类似的输出,只需在 group 上实现 string() Methode wie diese:

func (g Group) String() string {
    return fmt.Sprintf("{%s %s}", g.a, g.b)
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGibt den Aufzählungsnamen der Golang-Liste aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!