Comment itérer sur tous les champs d'une structure en Go ? (itération sur les champs d'une struct)
Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème : j'ai une structure avec plusieurs champs, et je dois parcourir programmatiquement tous ses champs, par exemple pour afficher leurs valeurs ou les sérialiser dans une map.
Voici un exemple de ma structure :
```go
type User struct {
Name string
Age int
Email string
}
```
Je veux écrire une fonction qui prend un `User` et affiche tous les champs au format `clé: valeur`. J'ai essayé d'utiliser une boucle classique, mais Go ne permet pas d'itérer sur les champs d'une structure comme sur un tableau ou une map.
```go
func PrintFields(u User) {
for _, field := range u { // Erreur : cannot range over u (type User)
fmt.Println(field)
}
}
```
Je comprends que dans d'autres langages (par exemple en Python ou JavaScript), cela se fait facilement avec des dictionnaires, mais en Go je suis bloqué. Pouvez-vous m'indiquer comment parcourir correctement les champs d'une structure ? Faut-il utiliser la réflexion ? Si oui, comment le faire de manière sûre et efficace ?
Je vous remercie d'avance pour un exemple.
No answers yet.
Connectez-vous pour laisser une réponse