English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Vous pouvez également utiliser un pointeur versstructdu pointeur. Les struct (structures) en Golang sont des types définis par l'utilisateur qui permettent de regrouper des projets de types différents/Combiner en un seul type. Pour utiliser un pointeur vers une structure, vous pouvez utiliser&Opérateur, c'est-à-dire l'opérateur d'adresse. Golang permet aux programmeurs d'accéder aux champs des structures sans utiliser explicitement la déréférenciation.
Exemple1:Ici, nous créons une structure nommée Employee qui a deux variables. Dans la fonction main, créons une instance de la structure, c'est-à-dire emp, puis vous pouvez passer l'adresse de la structure à un pointeur représentant le concept de structure. Il n'est pas nécessaire d'utiliser explicitement la déréférenciation, car cela donnera le même résultat que le programme suivant (deux fois ABC).
package main import "fmt" //Définir une structure type Employee struct { //Définir le champ name string empid int {} func main() { //Instance créée //Type de structure d'employé emp := Employee{ 19078{} //Ici, il s'agit d'un pointeur vers une structure pts := &emp fmt.Println(pts) //Accéder aux champs de structure (le nom de l'employé) //En utilisant un pointeur, mais ici nous n'utilisons pas explicitement la déréférenciation fmt.Println(pts.name) //En utilisant explicitement la déréférenciation //Indique que le résultat est le même que celui ci-dessus fmt.Println(*.name) {}
Sortie :
&{ABC} 19078{} ABC ABC
Exemple2:Vous pouvez également utiliser un pointeur pour modifier la valeur d'un membre de structure ou d'une valeur littérale de structure, comme suit :
package main import "fmt" //Définir une structure type Employee struct { name string empid int {} func main() { //Instance créée //Type de structure d'employé emp := Employee{ 19078{} //Ici, il s'agit d'un pointeur vers une structure pts := &emp //Afficher la valeur fmt.Println(pts) //Mettre à jour la valeur de name pts.name = "XYZ" fmt.Println(pts) {}
Sortie :
&{ABC} 19078{} &{XYZ} 19078{}