Sobes.tech
Junior

Quelles sont les principales structures de données en Go?

sobes.tech IA

Réponse de l'IA

En Go, il existe les structures de données principales (primitives) et composées (composite) suivantes :

Primitives :

  • Booléens (bool)
  • Types numériques :
    • Entiers (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Nombres à virgule flottante (float32, float64)
    • Nombres complexes (complex64, complex128)
    • Byte (byte - alias de uint8)
    • Rune (rune - alias de int32, représente un caractère Unicode)
  • Chaînes (string)

Composés :

  • Tableaux (array)
    • Taille fixe.
    var arr [5]int // tableau de 5 entiers
    
  • Tranches (slice)
    • Taille dynamique, basées sur des tableaux.
    var s []int // tranche non initialisée
    s = make([]int, 5, 10) // tranche de longueur 5 et capacité 10
    
  • Map (map)
    • Collection non ordonnée de paires clé-valeur.
    m := make(map[string]int) // carte avec clés string et valeurs int
    
  • Structs (struct)
    • Collection typée de champs.
    type Person struct {
        Name string
        Age  int
    }
    
  • Pointeurs (pointer)
    • Stockent l'adresse d'une cellule mémoire.
    var x int = 10
    var p *int = &x // p pointe vers x
    
  • Fonctions (func)
    • En Go, les fonctions sont des types de première classe.
    type MyFunc func(int) string // type de fonction
    
  • Canaux (channel)
    • Utilisés pour la synchronisation et l'échange de données entre goroutines.
    ch := make(chan int) // canal non tamponné pour int
    
  • Interfaces (interface)
    • Représentent un ensemble de méthodes qu'un type doit implémenter.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Il est également utile de mentionner d'autres types composites importants, tels que :

  • Tranches de bytes ([]byte)
  • Tranches de runes ([]rune)

Ces structures de données offrent flexibilité et performance pour un large éventail de tâches en Go.