Heim  >  Artikel  >  Backend-Entwicklung  >  Gibt den Aufzählungsnamen der Golang-Liste aus

Gibt den Aufzählungsnamen der Golang-Liste aus

王林
王林nach vorne
2024-02-10 18:21:07578Durchsuche

打印 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}]
}

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)
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen