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

Comment passer une tranche de tranches en tant qu'arguments variadiques dans Go ?

Patricia Arquette
Libérer: 2024-10-27 04:09:03
original
997 Les gens l'ont consulté

How to Pass a Slice of Slices as Variadic Arguments in Go?

Passer des tranches décompressées en tant qu'arguments variadiques

Dans Go, les fonctions variadiques acceptent un nombre indéfini d'arguments d'un type spécifique. Lors du passage d'une tranche de tranches à une telle fonction, il est crucial de comprendre les mécanismes de conversion de type et de décompression impliqués.

Si la tranche contient des éléments du même type que le paramètre variadique, la tranche peut être passée sans déballage. Cependant, si la tranche contient un mélange de types ou de tranches à l'intérieur des tranches, la situation devient plus complexe.

Selon la spécification Go, si l'argument final d'une fonction variadique est attribuable à un type de tranche, il peut être passée telle quelle comme valeur du paramètre variadique s'il est suivi de .... Cela signifie qu'aucune nouvelle tranche ne sera créée.

Dans le cas d'une tranche de tranches, la tranche elle-même ne peut pas être attribuée au paramètre variadique (de type []interface{}). C'est pourquoi une erreur est générée lors de la tentative de transmission de sliceOfSlices... à la fonction de décompression.

Pour résoudre ce problème, une étape intermédiaire est requise. Une nouvelle tranche du type approprié ([]interface{} dans ce cas) doit être créée et les éléments de la tranche des tranches copiés dedans. Cette nouvelle tranche peut ensuite être passée à la fonction unpack en utilisant ....

Par exemple :

<code class="go">var sliceOfSlices2 []interface{}
for _, v := range sliceOfSlices {
    sliceOfSlices2 = append(sliceOfSlices2, v)
}

unpack(sliceOfSlices2...)</code>
Copier après la connexion

Cette approche garantit que chaque élément de la tranche de tranches est passé séparément à la fonction de décompression, comme prévu.

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
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
À 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!