Menu
Coddy logo textTech

Pointeurs vers des structures

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 97 sur 109.

Lorsque vous travaillez avec des structures, vous pouvez créer des pointeurs vers celles-ci tout comme avec d'autres types. C'est utile pour transmettre efficacement de grandes structures.

Définissez une structure Person et créez un pointeur vers celle-ci :

type Person struct {
    name string
    age  int
}

func main() {
    person := Person{name: "Alice", age: 30}
    
    // Create a pointer to the struct
    personPtr := &person
    
    // Access fields through pointer
    fmt.Println(personPtr.name)
    fmt.Println(personPtr.age)
}

La sortie montre que nous pouvons accéder aux champs via le pointeur :

Alice
30

Vous pouvez également modifier les champs via le pointeur :

personPtr.age = 31
fmt.Println(person.age)  // Affiche : 31
challenge icon

Défi

Débutant

Dans ce défi, vous allez vous entraîner à travailler avec des pointeurs vers des structures (structs) en Go. Vous avez une structure Person avec des champs name et age. Votre tâche consiste à mettre à jour les informations de la personne en utilisant un pointeur vers la structure.

Le code crée déjà une structure Person et un pointeur vers celle-ci. Vous devez modifier les informations de la personne via le pointeur.

Aide-mémoire

Créez des pointeurs vers des structs en utilisant l'opérateur & :

type Person struct {
    name string
    age  int
}

person := Person{name: "Alice", age: 30}
personPtr := &person

Accédez aux champs de la struct et modifiez-les via des pointeurs :

// Access fields
fmt.Println(personPtr.name)
fmt.Println(personPtr.age)

// Modify fields
personPtr.age = 31

Essayez vous-même

package main

import "fmt"

// Structure Person avec les champs name et age
type Person struct {
	name string
	age  int
}

func main() {
	// Créer une structure Person
	person := Person{
		name: "John",
		age:  25,
	}

	// Créer un pointeur vers la structure Person
	personPtr := &person

	// Afficher les informations originales de la personne
	fmt.Println("Original person:")
	fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)

	// TODO: Utiliser le pointeur pour changer le nom de la personne en "Jane" et l'âge à 30
	// Astuce : Vous pouvez accéder aux champs de la structure via un pointeur en utilisant la notation par point
	

	// Afficher les informations mises à jour de la personne
	fmt.Println("Updated person:")
	fmt.Printf("Name: %s, Age: %d\n", person.name, person.age)
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux