English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base en Golang

Instructions de contrôle en Golang

Fonctions et méthodes en Golang

Structures en Golang

Coupes et tableaux en Golang

Chaînes (String) en Golang

Pointeurs en Golang

Interfaces en Golang

Concurrence en Golang

Exceptions (Error) en Golang

Autres éléments divers en Golang

Structures et pointeurs en langage Go

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{}