Avatar ·

¿Cómo iterar sobre todos los campos de una estructura en Go? (iteración sobre campos de struct)

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema: tengo una estructura con varios campos y necesito iterar programáticamente sobre todos sus campos, por ejemplo, para imprimir sus valores o serializarlos en un map. Aquí está un ejemplo de mi estructura: ```go type User struct { Name string Age int Email string } ``` Quiero escribir una función que tome `User` e imprima todos los campos en el formato `clave: valor`. Intenté usar un bucle normal, pero Go no permite iterar sobre los campos de una estructura como si fuera un array o un map. ```go func PrintFields(u User) { for _, field := range u { // Error: cannot range over u (type User) fmt.Println(field) } } ``` Entiendo que en otros lenguajes (por ejemplo, en Python o JavaScript) esto se hace fácilmente con diccionarios, pero en Go estoy estancado. ¿Podrían indicarme cómo iterar correctamente sobre los campos de una estructura? ¿Necesito usar reflexión? Si es así, ¿cómo hacerlo de manera segura y eficiente? Agradecería un ejemplo.