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.

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

Entraînez-vous par vous-même : Compilateur Go en ligne