Avatar ·

Cómo pasar un valor por defecto a un método en Go si el lenguaje no tiene sobrecarga de funciones

¡Hola a todos! Acabo de empezar a aprender Go después de Python y me encontré con un problema inesperado. En Python, solía escribir funciones con argumentos por defecto, por ejemplo: ```python def greet(name, greeting="Hello"): print(f"{greeting}, {name}!") ``` Si llamo a `greet("Alice")`, greeting automáticamente se convierte en "Hello". Si es necesario, puedo pasar mi propio valor: `greet("Alice", "Hi")`. Ahora estoy escribiendo en Go y quiero hacer un método similar. Supongamos que tengo una estructura `Config` y un método `NewClient` que toma la dirección del servidor y un timeout. Quiero que el timeout por defecto sea 30 segundos, pero a veces el usuario podría establecer el suyo propio. En Go, intenté escribir así: ```go type Config struct { Address string Timeout int } func NewClient(address string, timeout int) *Config { if timeout == 0 { timeout = 30 // valor por defecto } return &Config{Address: address, Timeout: timeout} } ``` Pero esto funciona mal: si el usuario pasa explícitamente