Vale aclara algo:
las funciones en Go se definen de la siguiente manera:
func nameFunc() {
// body de la función
}
El nombre de las funciones no se pueden repetir en un mismos paquete, pero que esta pasando con las func area
que se definieron dos veces en esta clase?
Lo que esta sucediendo es que no son simplemente funciones, en Go se les conoce como Methods. Un método es una función con un argumento de receptor especial. que debe de ser de tipo struct o interface y se definen de la siguiente manera:
func (receiver type) nameFunc() {
// body del metodo
}
Una buena practica es nombrar a nuestro receptor con la primera letra del struct o interface a la que estamos haciendo referencia, por ejemplo:
type cuadrado struct {
lado float32
}
func (c cuadrado) area() float32 {
return c.lado * c.lado
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.