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
No answers yet.
Inicia sesión para dejar una respuesta