Avatar ·

¿Cómo implementar parámetros opcionales en funciones en Go? (análogo a overloading)

¡Hola a todos! Acabo de empezar a estudiar Go después de Java y Python, y me encontré con un problema que me tiene realmente perplejo. En los lenguajes que conocía antes, se podían declarar fácilmente funciones con parámetros opcionales. Por ejemplo, en Python podía escribir: def connect(host, port=8080, timeout=30). Y llamarla como connect("localhost"), connect("localhost", 9090) o connect("localhost", 9090, 60). Ahora intento hacer lo mismo en Go. Necesito escribir una función para conectarme a un servidor, donde el puerto y el timeout deben ser opcionales. Probé el enfoque obvio: ```go func connect(host string, port int = 8080, timeout int = 30) { // ... código de conexión } ``` Pero el compilador da un error: "syntax error: unexpected =, expecting {". Resulta que en Go no hay valores por defecto para los parámetros. También leí que en Go no hay sobrecarga de funciones (overloading). Es decir, no puedo simplemente crear dos versiones de la función con diferente cantidad de parámetros, como en Java: ```go