¿Por qué el idioma Go no admite la sobrecarga?
Hay esta oración en la respuesta anterior:
La experiencia en el uso de otros idiomas nos dice que usar múltiples métodos con el mismo nombre pero con diferentes firmas a veces es útil, pero en la práctica también puede estar creando confusión y vulnerabilidad.
Luego continúa diciendo: En el sistema de tipos Go, hacer coincidir solo por nombre requiere el mismo tipo, que es una decisión principal simplificada.
Última frase: Parece más conveniente que el requisito absoluto sobre la sobrecarga del operador. Una vez más, las cosas serían más sencillas sin él.
Toda la solución es muy bonita y sencilla. Después de leerlo, comprenderá que los diseñadores del lenguaje Go no sobrecargaron los métodos en Go y no hay ninguna razón complicada. El principio básico es mantener Go lo suficientemente simple. También se puede ver que los diseñadores del lenguaje Go tienen muchas opciones y moderación.
De hecho, el autor cree que la sobrecarga no tiene mucha importancia práctica en la naturaleza. Sólo hay algunas diferencias en expresión y forma. La clave para definir una llamada de función en un contexto específico es la firma de la función. En los lenguajes que admiten la sobrecarga, el nombre de la función y los parámetros de la función suelen constituir la firma de la función. En Go, puedes considerar el nombre de la función como la firma. Lógicamente no hay mucha diferencia, es la diferencia entre trabajar delante del escenario y trabajar detrás de escena.
Por supuesto, si tuviéramos que ser serios, probablemente podríamos escribir los parámetros como interfaz{} o... segmentos al declarar métodos en Go. Al pasar parámetros, realice una verificación en un solo paso para determinar el tipo y la cantidad de parámetros, y luego proceselos por separado.
Diferentes personas tienen opiniones diferentes. Si tiene una comprensión diferente, no dude en comunicarse con nosotros.