Maison > développement back-end > Golang > Comment puis-je implémenter la fonctionnalité ToString() personnalisée pour les objets non-string dans Go ?

Comment puis-je implémenter la fonctionnalité ToString() personnalisée pour les objets non-string dans Go ?

DDD
Libérer: 2024-12-09 21:55:14
original
1009 Les gens l'ont consulté

How Can I Implement Custom ToString() Functionality for Non-String Objects in Go?

Fonctionnalité ToString() personnalisée dans Go

Le langage Go fournit la fonction strings.Join pour concaténer des tranches de chaîne, mais que faire si vous le souhaitez joindre des objets arbitraires avec des représentations sous forme de chaîne personnalisées ? Cette question se pose lorsque vous devez transmettre des objets non-chaînes qui n'implémentent pas nativement la méthode ToString().

Interface ToString() personnalisée

Pour résoudre ce problème problème, une interface ToStringConverter personnalisée peut être créée :

type ToStringConverter interface {
    ToString() string
}
Copier après la connexion

Tout objet qui implémente cette interface peut ensuite être transmis à un Join modifié function :

func Join(a []ToStringConverter, sep string) string
Copier après la connexion

Implémentation de ToString()

Pour activer les représentations de chaîne personnalisées, implémentez simplement la méthode String() pour tout type nommé :

package main

import "fmt"

type bin int

func (b bin) String() string {
        return fmt.Sprintf("%b", b)
}

func main() {
        fmt.Println(bin(42))
}
Copier après la connexion

Playground et sortie

Lien Playground : [http://play.golang.org/p/Azql7_pDAA](http://play.golang.org/p/Azql7_pDAA)

Sortie :

101010
Copier après la connexion

Cette approche permet pour une plus grande flexibilité dans la concaténation de chaînes, vous permettant d'incorporer des objets non-chaînes avec des représentations de chaîne personnalisées.

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:php.cn
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