La méthode de modification de la valeur en langage Go par réflexion : 1. Définir le nom et les attributs d'âge de « P » 2. Utiliser la réflexion pour obtenir les informations et le type de « P » ; La fonction "v. FieldByName" récupère le champ et utilise la syntaxe "v.FieldByName("Name").SetString("Bob")" pour modifier la valeur ; 4. Vous pouvez également utiliser la fonction "v.MethodByName" pour modifier la valeur.
L'environnement d'exploitation de ce tutoriel : système Windows 10, version go1.20, dell g3.
En langage Go, la réflexion est un outil puissant qui nous permet de vérifier les valeurs et les types au moment de l'exécution. Grâce à la réflexion, nous pouvons obtenir le type d'une valeur, les variables membres, les méthodes et d'autres informations pour réaliser certaines opérations et optimisations avancées.
Cet article présente principalement comment utiliser la réflexion pour modifier les valeurs dans le langage Go.
Reflection Basics
Dans le langage Go, les types et les valeurs sont stockés séparément. Les types représentent la structure et les propriétés des valeurs, et les valeurs représentent des données spécifiques. Le type est déterminé au moment de la compilation, mais la valeur doit être déterminée au moment de l'exécution.
La réflexion consiste à exploiter des valeurs via des informations de type d'exécution. La réflexion dans le langage Go est principalement implémentée via le package Reflect.
Le package Reflect propose deux types importants : Type et Valeur. Le type représente les informations de type et la valeur représente les informations de valeur. Nous pouvons utiliser Reflect.TypeOf pour obtenir les informations de type d'une valeur et utiliser Reflect.ValueOf pour obtenir les informations sur la valeur d'une valeur.
Obtenir et modifier des valeurs
En langage Go, nous pouvons utiliser la réflexion pour obtenir les informations de champ et de méthode d'une valeur, puis modifier la valeur Propriétés et méthodes.
Ce qui suit est un exemple simple. Nous définissons une structure Personne, qui contient deux attributs : nom et âge :
type Person struct { Name string Age int } p := Person{Name: "Alice", Age: 18}
Nous pouvons utiliser la réflexion pour obtenir les informations sur la valeur de p et Tapez les informations :
v := reflect.ValueOf(p) t := v.Type()
Nous pouvons utiliser v.FieldByName pour obtenir les informations du champ, puis utiliser v.FieldByName("Name").SetString("Bob") pour modifier la valeur : #🎜 🎜#
if v.FieldByName("Name").IsValid() { v.FieldByName("Name").SetString("Bob") }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!