Aller au contenu principal
Publié le

struct en Go

Partager :

Introduction

En Go, une "struct" est une collection composée de champs qui permet de regrouper des variables de différents types. Les structs sont extrêmement utiles pour définir et créer des types de données personnalisés, en fournissant une manière organisée de représenter des entités et leurs attributs.

Définir et Initialiser les structs

Pour définir une struct, on utilise le mot-clé type suivi du nom de la struct et du mot-clé struct :

type Personne struct {
  Nom   string
  Age   int
  Email string
}

Pour initialiser une struct, on peut assigner des valeurs à ses champs en utilisant la syntaxe des accolades :

p := Personne{"Nelson", 28, "[email protected]"}

Ou en utilisant les noms des champs :

p := Personne{
  Nom:   "Nelson",
  Age:   28,
  Email: "[email protected]",
}

Accéder aux Champs de la struct

Pour accéder à un champ spécifique de la struct, on utilise l'opérateur . :

nom := p.Nom  // "Nelson"
age := p.Age  // 28

Structs Imbriquées

Il est possible d'avoir des structs à l'intérieur d'autres structs, une caractéristique utile pour représenter des relations hiérarchiques ou complexes :

type Adresse struct {
  Rue  string
  Ville string
  Pays string
}

type Personne struct {
  Nom          string
  Age          int
  Emplacement  Adresse
}

Pointeurs vers des structs

Tout comme les autres variables en Go, les structs peuvent également être référencées via des pointeurs :

pointeurVersPersonne := &p
pointeurVersPersonne.Nom = "Pierre"  // Modifie le nom dans la struct originale

Méthodes et structs

En Go, on peut définir des méthodes spécifiques pour les structs, permettant que des opérations précises soient réalisées avec ou sur ces structs :

func (p Personne) SePresenter() string {
  return "Bonjour, je m'appelle " + p.Nom
}

message := p.SePresenter()  // "Bonjour, je m'appelle Nelson"

Conclusion

Les structs en Go sont des outils puissants et flexibles qui nous permettent de créer des représentations claires et organisées des entités et de leurs attributs. Maîtriser les structs est fondamental pour tout développeur Go souhaitant créer des applications robustes et bien structurées.

Happy coding!