¿Qué es una clase y un objeto en Golang?

Que Es Una Clase Y Un Objeto En Golang



Ideas fundamentales en la programación de computadoras como clase y objeto proporcionar una estructura para agrupar el código en módulos reutilizables y adaptables. Golang tiene su propia sintaxis, características y filosofía distintivas. A diferencia de otros lenguajes, la solución no es tan obvia cuando se trata de los conceptos de clase y objeto en Ir . En este artículo, exploraremos si Go tiene un concepto de clase y un objeto y cómo se compara con otros lenguajes de programación.

¿Qué es una Clase y un Objeto?

Antes de que podamos responder si Ir tiene clases y objetos , primero tenemos que definir lo que son en el contexto de la programación. A clase es un modelo o plantilla que describe las características y acciones de una colección de objetos . Un objeto se crea como una instancia de un clase cuando se asigna memoria y su estado se inicializa en tiempo de ejecución. Clases y objetos son bloques de construcción clave en lenguajes de programación clásicos orientados a objetos como Java, C++ o C# que admiten polimorfismo, herencia y encapsulación.

Estructuras en Golang

En vamos, clases son reemplazados por tipos de datos definidos por el usuario llamados estructuras Estos estructuras combinar múltiples elementos o propiedades y permitir la inclusión de métodos, funciones que operan en instancias del estructura Mientras estructuras comparte algunas similitudes con clases como la herencia y las interfaces, también hay diferencias notables. Por ejemplo, Ir no tiene un constructor: un método único que inicializa el estado de un objeto en el momento de la creación, como suele ocurrir en los lenguajes basados ​​en clases.







Interfaces en Golang

Ir tiene un concepto que es como objetos : interfaces . Un interfaz es una colección de métodos que describen un comportamiento o funcionalidad, pero sin especificar cómo se implementa. Interfaces proporcionar una manera de lograr el polimorfismo en Ir , lo que permite utilizar distintos tipos de forma intercambiable si cumplen los requisitos de la interfaz. Este es un concepto poderoso que permite Ir para lograr un alto grado de flexibilidad y extensibilidad sin sacrificar el rendimiento o la simplicidad.



Uso de estructuras e interfaces en Golang

El siguiente ejemplo ilustra el uso de estructura y interfaces en Ir .



paquete principal
importar 'fmt'

tipo Humano estructura {
cadena de nombre
}

tipo trabajador estructura {
Humano
cadena de trabajo
}

función ( humano ) Información ( ) {
fmt. Imprimir ( 'Soy s \norte ' , H. nombre )
}

función ( trabajador ) Información ( ) {
fmt. Imprimir ( 'Soy %s. Soy %s. \norte ' , En. nombre , En. trabajo )
}

Tipo Interfaz de persona {
Información ( )
}
función principal ( ) {
John := Obrero { Humano { 'John' } , 'obrero' }
Gama := Humano { 'Gama' }

John. Información ( )
Gama. Información ( )

estaba en persona

i = John
i. Información ( )

i = Gama
i. Información ( )
}

Hemos creado dos estructuras , Humano y Obrero , en el código anterior. A continuación, se crean las funciones que imprimen los mensajes. El estructuras son llamados en el principal () función de la Persona interfaz . Podemos ver que el Información El método ha sido implementado tanto por el Obrero y el Humano , por lo tanto la variable i con el tipo Persona la interfaz funcionará correctamente e imprimirá la salida.





Producción



Ir tiene un enfoque único para encapsulación . Encapsulación se logra en la programación convencional orientada a objetos haciendo que los campos sean privados y haciéndolos accesibles a través de métodos getter y setter. En Ir , encapsulación se logra mediante el uso de nombres de campo en minúsculas, que solo son visibles dentro del mismo paquete. Esta estrategia es más directa e inequívoca, lo que simplifica la comprensión del comportamiento del código y reduce la posibilidad de efectos secundarios imprevistos.

Ir proporciona una forma simplificada de polimorfismo . La programación orientada a objetos tiene una característica llamada polimorfismo que permite tratar objetos de varias clases como instancias de la misma clase. Ir no proporciona la herencia convencional basada en clases, pero admite interfaces, que se pueden usar para especificar un conjunto de métodos que debe implementar una estructura. Ir también ofrece aserciones de tipo, que permiten a los programadores examinar el contenido de una variable de interfaz y obtener el valor concreto subyacente.

Conclusión

Ir no tiene clases o objetos en el sentido clásico; en cambio, utiliza estructuras y interfaces , que ofrecen una funcionalidad comparable de una forma más sencilla y ligera. Ir ha ganado popularidad entre los desarrolladores que priorizan la simplicidad, la legibilidad y el rendimiento al adoptar una filosofía y una gramática diferentes. Aunque familiarizarse con ir La metodología puede tomar algún tiempo, sus características distintivas y su diseño dan como resultado un código más efectivo y fácil de mantener.