Menu
Coddy logo textTech

Les Structs comme Classes

Fait partie de la section Programmation Orientée Objet du Journey GO de Coddy — leçon 6 sur 107.

Les structures (structs) en Go remplissent le même rôle que les classes dans d'autres langages. Elles regroupent des données liées en un seul type.

Définissez une structure avec plusieurs types de champs

type Car struct {
    Brand string
    Model string
    Year  int
    Price float64
}

Créer une instance en utilisant les noms de champs

car := Car{
    Brand: "Toyota",
    Model: "Camry",
    Year:  2023,
    Price: 28000.50,
}

Accéder aux champs et les modifier

fmt.Println(car.Brand) // Toyota
fmt.Println(car.Year)  // 2023

car.Price = 27000.00   // Modifier un champ
fmt.Println(car.Price) // 27000

Les structures peuvent contenir d'autres structures

type Engine struct {
    Horsepower int
    FuelType   string
}

type Car struct {
    Brand  string
    Model  string
    Engine Engine
}

car := Car{
    Brand:  "Ford",
    Model:  "Mustang",
    Engine: Engine{Horsepower: 450, FuelType: "Gasoline"},
}
fmt.Println(car.Engine.Horsepower) // 450

Les structures regroupent des champs liés entre eux. Vous accédez aux champs avec l'opérateur point, et vous pouvez imbriquer des structures à l'intérieur d'autres structures pour construire des modèles de données complexes.

challenge icon

Défi

Moyen

Définissez une structure Profile avec les champs suivants :

  • Name — string
  • Email — string
  • Age — int
  • Role — string

Aide-mémoire

Les structs en Go regroupent des données liées au sein d'un seul type, de manière similaire aux classes dans d'autres langages.

Définissez une struct avec plusieurs types de champs :

type Car struct {
    Brand string
    Model string
    Year  int
    Price float64
}

Créez une instance en utilisant les noms des champs :

car := Car{
    Brand: "Toyota",
    Model: "Camry",
    Year:  2023,
    Price: 28000.50,
}

Accédez aux champs et modifiez-les en utilisant l'opérateur point :

fmt.Println(car.Brand) // Toyota
car.Price = 27000.00   // Modifier un champ

Les structs peuvent contenir d'autres structs (structs imbriquées) :

type Engine struct {
    Horsepower int
    FuelType   string
}

type Car struct {
    Brand  string
    Model  string
    Engine Engine
}

car := Car{
    Brand:  "Ford",
    Model:  "Mustang",
    Engine: Engine{Horsepower: 450, FuelType: "Gasoline"},
}
fmt.Println(car.Engine.Horsepower) // 450

Essayez vous-même

package main

import "fmt"

func main() {
    var name, email, role string
    var age int
    fmt.Scan(&name, &email, &age, &role)

    p := Profile{
        Name:  name,
        Email: email,
        Age:   age,
        Role:  role,
    }

    fmt.Printf("Name: %s\n", p.Name)
    fmt.Printf("Email: %s\n", p.Email)
    fmt.Printf("Age: %d\n", p.Age)
    fmt.Printf("Role: %s\n", p.Role)
}
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 Programmation Orientée Objet