Maison  >  Article  >  développement back-end  >  Imprimer le nom de l'énumération de la liste Golang

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

王林
王林avant
2024-02-10 18:21:07579parcourir

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

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer