"En Go, las interfaces definen contratos de métodos, no acceso a campos, lo que lleva a errores de tiempo de compilación cuando se intenta acceder directamente a campos de estructuras a través de una interfaz. Cuando se asigna una estructura a una interfaz, el valor de la estructura se oculta, requiriendo métodos específicos para acceder a ella. Escenarios comunes, como el manejo de cargas de API, ilustran esta limitación, ya que las interfaces no conocen inherentemente campos de estructuras como "Nombre". La afirmación de tipo proporciona una solución al confirmar el tipo subyacente, permitiendo acceder a sus campos específicos, a menudo utilizada con instrucciones `if` o conmutadores de tipo. Alternativamente, la reflexión puede acceder dinámicamente a campos, pero debe usarse con cautela debido a su complejidad y potencial para errores. La tipificación estricta de Go busca prevenir errores al separar claramente los contratos de interfaz de las implementaciones de estructuras. Entender que las interfaces no llevan campos de estructuras aclara por qué el acceso directo a campos falla. La afirmación de tipo y la reflexión son herramientas para superar esta limitación cuando sea necesario. Elija el método que mejor se adapte a sus necesidades y el nivel de dinamismo requerido por su código. La discusión completa incluye ejemplos de código y ejemplos de reflexión."
dev.to
Why You Can’t Access Struct Fields Through Interfaces in Go (and How to Fix It)
Create attached notes ...
