Junior — Middle
¿Cómo se implementa la transmisión de valores predeterminados en los parámetros de funciones en el lenguaje Go?
sobes.tech AI
Respuesta de la IA
En el lenguaje Go no hay soporte incorporado para parámetros de funciones con valores predeterminados, como en algunos otros lenguajes (por ejemplo, Python o C++). Para implementar un comportamiento similar, generalmente se utilizan uno de los siguientes enfoques:
- Sobrecarga de funciones mediante parámetros variables — pasar un número variable de argumentos a la función y verificar su presencia internamente:
func greet(name string, messages ...string) {
msg := "Hello"
if len(messages) > 0 {
msg = messages[0]
}
fmt.Println(msg, name)
}
// Llamadas:
greet("Alice") // Hello Alice
greet("Bob", "Hi") // Hi Bob
- Uso de estructuras con configuraciones — pasar a la función una estructura con parámetros, donde se pueden establecer valores predeterminados al crearla:
type Config struct {
Timeout int
}
func doSomething(cfg Config) {
if cfg.Timeout == 0 {
cfg.Timeout = 30 // valor predeterminado
}
// ...
}
// Llamada:
doSomething(Config{})
- Creación de funciones constructores auxiliares con diferentes conjuntos de parámetros.
De esta manera, en Go los valores predeterminados se implementan mediante lógica explícita dentro de la función o mediante estructuras, y no mediante la sintaxis del lenguaje.