Maison >développement back-end >Golang >Comment convertir une []interface{} en une []chaîne dans Go ?

Comment convertir une []interface{} en une []chaîne dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-07 11:28:131064parcourir

How to Convert a []interface{} to a []string in Go?

Conversion de []interface{} en []string dans Golang

Lorsque vous travaillez avec le package github.com/fatih/structs, vous peut rencontrer des situations où vous devez convertir les valeurs []interface{} obtenues à partir de la fonction toValues() en []string pour une utilisation avec le package csv. Cependant, cette conversion ne peut pas être effectuée directement car ces types diffèrent dans leur disposition en mémoire.

Pour résoudre ce problème, vous devez définir comment les valeurs de différents types doivent être représentées sous forme de chaînes. Une approche simple consiste à parcourir les valeurs et à utiliser fmt.Sprint() pour obtenir des représentations sous forme de chaîne.

Voici un exemple de code démontrant cela :

t := []interface{}{
    "zero",
    1, 2.0, 3.14,
    []int{4, 5},
    struct{ X, Y int }{6, 7},
}

s := make([]string, len(t))
for i, v := range t {
    s[i] = fmt.Sprint(v)
}

Cela produira le résultat suivant :

[zero 1 2 3.14 [4 5] {6 7}]
["zero" "1" "2" "3.14" "[4 5]" "{6 7}"]

En employant cette technique, vous pouvez facilement convertir []interface{} contenant des valeurs de différents types en []string, vous permettant de utiliser efficacement le package csv pour un traitement ultérieur.

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:
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