Que es la reflexión?
La reflexión se refiere al método de analizar e inspeccionar variables y sus valores durante el tiempo de ejecución. Es una técnica muy útil cuando se trata con componentes abstractos de una estructura. Esto no significa que se limite a estructuras. Discutamos varios componentes de la reflexión en Golang.
Importaciones requeridas
En Go, se proporciona la capacidad de realizar reflexión utilizando el paquete reflejo. Por lo tanto, necesitamos importarlo antes de usar. Puede importarlo como se muestra en el fragmento a continuación:
importar "reflejar"Una vez importado, puede comenzar a usar los métodos y funcionalidades proporcionados.
Tipo de()
Un método del paquete reflejar es el typeof (). Esta función le permite determinar el tipo de variable.
Para usarlo, podemos hacer:
paquete principalEl ejemplo anterior usa reflejar.Método typeof () para verificar los tipos de datos de varias variables. La salida resultante es como se muestra:
Tipo => intValor de()
El reflejo.El método valueOf () devuelve el valor de una variable específica. Un ejemplo es como se muestra:
fmt.Println ("valor =>", reflejar.Valor de (var4))Esto debería devolver el valor de la variable var4.
Producción:
Valor => [1 2 3]Copiar()
El método de copia se utiliza para copiar los elementos de una fuente específica a un destino especificado. La función realizará la operación de copia hasta que el destino esté lleno de los elementos de la fuente.
La función devuelve el número de elementos copiados de la fuente al destino.
Recuerde que el destino y la fuente deben ser del mismo tipo.
Considere el ejemplo que se muestra a continuación:
paquete principalEn el ejemplo anterior, usamos el reflejo.Valuef () para lanzar la variable a su tipo. Luego usamos el método Copy () para copiar los elementos del Dest a la variable SRC. La salida resultante es como se muestra:
Elementos copiados: 3Swapper ()
El método Swapper () le permite intercambiar elementos en una porción. Un ejemplo es como se muestra a continuación:
LST: = [] int 1, 2, 3, 4, 5El ejemplo anterior intercambia la porción del primer índice hasta el último. La salida es como se muestra:
Antes de intercambiar: [1 2 3 4 5]Numfield ()
El método numfield () devuelve el número de campos dentro de una estructura dada. Un ejemplo es como se muestra:
escriba my_struct structLo anterior debe devolver el número de campos en la estructura. Producción:
4Campo()
El método Field () devuelve el nombre y el tipo de datos de los campos dentro de una estructura.
struct_1: = my_struct "a", 1, 3.14, falsoEl programa anterior devuelve el nombre de los campos en la estructura y sus tipos de datos. Producción:
Cadena Field_1Makechan ()
El método makechan () crea un canal de tipo especificado y un canal de tamaño de buffers. Ejemplo:
Var str chan cadenaLo anterior debe crear un canal de tipo Chan y un tamaño de amortiguación de 256. La salida resultante es como se muestra:
Tipo de canal: ChanMakemap ()
Como su nombre indica, la función makemap () crea un mapa del tipo de datos definido.
Tome el ejemplo a continuación:
Var str map [cadena] cadenaEsto crea un nuevo mapa. Producción:
Tipo => mapaConclusión
En esta guía, rayamos la superficie de usar el paquete reflejo en Go. Tenga en cuenta que el paquete ofrece mucho más de lo que se discute aquí.