Maison > développement back-end > Golang > le corps du texte

Imprimer le nom de l'énumération de la liste Golang

王林
Libérer: 2024-02-10 18:21:07
avant
578 Les gens l'ont consulté

打印 golang 列表的枚举名称

l'éditeur php Yuzai vous présente une méthode simple et efficace pour imprimer le nom d'énumération de la liste golang. En Golang, les types d'énumération sont représentés sous forme de groupes constants, et nous pouvons y parvenir en parcourant le groupe constant et en imprimant le nom de chaque constante. Cette méthode est non seulement simple et facile à comprendre, mais également applicable à tout programme Golang contenant des types énumérés. En suivant les étapes suivantes, vous pouvez facilement imprimer le nom de l'énumération de la liste golang.

Contenu de la question

J'ai l'énumération suivante et ses fonctions de chaîne. Lorsque j'utilise println sur une valeur animale spécifique, le bon Le nom est imprimé. Mais quand je l'imprime sous forme de liste complète, alors Seules leurs valeurs entières sont imprimées. Comment imprimer les noms des animaux lorsque j'imprime une liste de 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}]
}
Copier après la connexion

Solution

Comme @greedy52 l'a dit, il devrait être exporté ab (ce qui est la bonne réponse).

Mais si vous souhaitez les conserver private 并具有类似的输出,只需在 group 上实现 string() méthode comme ceci :

func (g Group) String() string {
    return fmt.Sprintf("{%s %s}", g.a, g.b)
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!