Struct - Methods vs Functions
Veremos las estructuras que existen en Go y la diferencia entre métodos y funciones.
¿Qué son las estructuras en Go?
En Go, una struct (estructura) es un tipo de dato compuesto que permite agrupar datos bajo una misma entidad, lo que resulta muy útil para representar entidades o conceptos que tienen múltiples atributos o propiedades. Las structs se utilizan para definir un tipo de datos personalizado con un conjunto de campos, cada uno con un nombre y un tipo específico.
Una struct en Go es similar a una clase en otros lenguajes orientados a objetos, pero Go no tiene herencia ni otras características de la programación orientada a objetos. En cambio, se enfoca en la composición mediante structs y interfaces, lo que hace que el lenguaje sea más simple y eficiente.
Definición de una Estructura:
Las estructuras se definen usando la palabra clave type
seguida del nombre de la estructura.
Creación de una Instancia de Estructura:
Puedes crear una instancia de la estructura y acceder a sus campos.
Métodos
Los métodos se asocian a tipos y tienen una firma similar a las funciones, pero tienen un receptor. ¿y cual es la diferencia entre método y función? ya la veré más abajo.
Se puede llamar al método así:
Métodos con Punteros:
Si deseas modificar el valor de la estructura desde el método, debes usar un puntero como receptor.
Ahora bien...
¿Cual es la diferencia entre Método y Función? ¿Que es un receptor o receiver?
Diferencias entre Funciones y Métodos
Definición:
Función
: Es un bloque de código que realiza una tarea específica y puede ser llamada en cualquier parte del programa. No está asociada a ningún tipo en particular.Método
: Es una función que está asociada a un tipo específico (generalmente una estructura). Los métodos se utilizan para operar sobre los datos de ese tipo.
Sintaxis:
Función:
Método:
¿Qué es un Receptor (Receiver)?
El receptor (o receiver) es el argumento que se pasa al método para que pueda acceder a los datos de la estructura a la que está asociado. Permite que el método opere sobre la instancia específica de la estructura.
Receptor puede ser:
Por valor: Se pasa una copia de la estructura. Los cambios dentro del método no afectan a la estructura original.
Por puntero: Se pasa una referencia a la estructura original. Los cambios dentro del método afectan a la estructura original.
Ejemplo ilustrado:
Saludar
es un método que recibe una copia dePersona
, así que si cambias algo enp
, no afectará a la instancia original.CumplirAño
recibe un puntero aPersona
, por lo que cualquier cambio enp.Edad
afectará a la estructura original.
Eso es todo, ahora si nospi :)
Last updated