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 deuint8) - Rune (
rune- alias deint32, représente un caractère Unicode)
- Entiers (
- 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.