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
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)
Sortie :
[initial string element 1 element 2]
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!