Maison > développement back-end > Golang > Comment ajouter une chaîne à une tranche variadique d'interfaces dans Go ?

Comment ajouter une chaîne à une tranche variadique d'interfaces dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-07 15:02:13
original
737 Les gens l'ont consulté

How to Prepend a String to a Variadic Slice of Interfaces in Go?

Préparer une chaîne à une tranche variadique d'interfaces

Considérons une situation dans laquelle vous disposez d'une méthode qui accepte un nombre variable d'arguments de type ...interface{} . Pour ajouter une chaîne à cette tranche, vous pouvez rencontrer des problèmes lors de l'utilisation directe de append().

Dans de tels cas, la fonction standard append() s'attend à ce que le premier argument soit une tranche et que les arguments suivants correspondent au type. des éléments dans la tranche :

func append(slice []Type, elems ...Type) []Type
Copier après la connexion

Pour résoudre ce problème, vous pouvez créer un wrapper []interface{} pour votre chaîne initiale, puis utiliser append() pour combiner la chaîne et la variable slice :

s := "initial string"
rest := []interface{}{"element 1", "element 2"}

all := append([]interface{}{s}, rest...)
fmt.Println(all)
Copier après la connexion

Sortie :

[initial string element 1 element 2]
Copier après la connexion

En enveloppant la chaîne sous forme d'[]interface{}, vous vous assurez qu'elle correspond au type attendu pour append() et vous permet de ajoutez-le avec succès à la tranche variadique.

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal