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!