Qu'est-ce que la réflexion?
La réflexion fait référence à la méthode d'analyse et d'inspection des variables et de leurs valeurs pendant l'exécution. C'est une technique très utile lorsqu'il s'agit de composants abstraits d'une structure. Cela ne signifie pas qu'il se limite aux structures. Discutons de diverses composantes de la réflexion à Golang.
Importations requises
En Go, la possibilité d'effectuer une réflexion est fournie en utilisant le package de réflexion. Par conséquent, nous devons l'importer avant utilisation. Vous pouvez l'importer comme indiqué dans l'extrait ci-dessous:
importer "refléter"Une fois importé, vous pouvez commencer à utiliser les méthodes et fonctionnalités fournies.
Type de()
Une méthode du package de réflect est le typeof (). Cette fonction vous permet de déterminer le type de variable.
Pour l'utiliser, nous pouvons faire:
package principalL'exemple ci-dessus utilise refléter.Typeof () Méthode pour vérifier les types de données de diverses variables. La sortie résultante est comme indiqué:
Type => intValeur de()
La réflexion.Valeurof () La méthode renvoie la valeur d'une variable spécifique. Un exemple est comme indiqué:
fmt.Println ("value =>", refléter.Valeur de (var4))Cela devrait renvoyer la valeur de la variable var4.
Sortir:
Valeur => [1 2 3]Copie()
La méthode de copie est utilisée pour copier les éléments d'une source spécifique vers une destination spécifiée. La fonction effectuera l'opération de copie jusqu'à ce que la destination soit pleine des éléments de la source est épuisé.
La fonction renvoie le nombre d'éléments copiés de la source à la destination.
N'oubliez pas que la destination et la source doivent être du même type.
Considérez l'exemple ci-dessous:
package principalDans l'exemple ci-dessus, nous utilisons la réflexion.Valeurof () pour lancer la variable à son type. Nous utilisons ensuite la méthode COPY () pour copier les éléments du DEST à la variable SRC. La sortie résultante est comme indiqué:
Éléments copiés: 3Swapper ()
La méthode Swapper () vous permet d'échanger des éléments dans une tranche. Un exemple est comme indiqué ci-dessous:
lst: = [] int 1, 2, 3, 4, 5L'exemple ci-dessus échange la tranche du premier index au dernier. La sortie est comme indiqué:
Avant l'échange: [1 2 3 4 5]Numfield ()
La méthode numfield () renvoie le nombre de champs dans une structure donnée. Un exemple est comme indiqué:
Tapez my_struct structCe qui précède doit renvoyer le nombre de champs dans la structure. Sortir:
4Champ()
La méthode champ () renvoie le nom et le type de données des champs dans une structure.
struct_1: = my_struct "a", 1, 3.14, fauxLe programme ci-dessus renvoie le nom des champs dans la structure et leurs types de données. Sortir:
Field_1 StringMakechan ()
La méthode makechan () crée un canal de type spécifié et le canal de taille de tampons. Exemple:
Var Str Chan StringCe qui précède doit créer un canal de type chan et une taille de tampon de 256. La sortie résultante est comme indiqué:
Kind Kind: ChanMakeMap ()
Comme son nom l'indique, la fonction makeMap () crée une carte du type de données défini.
Prenez l'exemple ci-dessous:
String Var Str Map [String]Cela crée une nouvelle carte. Sortir:
Kind => mapConclusion
Dans ce guide, nous avons rayé la surface de l'utilisation du package de réflexion dans Go. Gardez à l'esprit que le package offre bien plus que ce qui est discuté ici.