Avatar ·

Cómo crear correctamente constructores en Go si el lenguaje no tiene clases ni constructores

¡Hola a todos! Acabo de empezar a aprender Go después de Python y Java, y me he encontrado con un gran bloqueo. En Go no hay clases en el sentido habitual ni constructores. Entonces, ¿cómo se crean objetos con lógica de inicialización compleja? Supongamos que quiero crear una estructura `User` con los campos `Name`, `Email` y `Age`. Idealmente, quiero que al crear un usuario se valide el email, que la edad no sea negativa y que el nombre no esté vacío. En Python escribiría `__init__`, en Java un constructor con validaciones. ¿Cómo se hace esto en Go? Por ahora hago esto: ```go type User struct { Name string Email string Age int } func main() { u := User{ Name: "Alice", Email: "alice@example.com", Age: 30, } // ¡Pero aquí no hay validaciones! Se puede crear un User con nombre vacío o edad -5. fmt.Println(u) } ``` Entiendo que en Go se puede declarar una estructura y llenar los campos, pero esto no es seguro. Necesito alguna función que garantice